Activity的生命周期

本文详细介绍了Android中Activity的生命周期,包括运行、暂停和停止三种状态及其间的转换方法。通过示例代码展示了如何实现不同状态之间的回调方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Activity在运行时会受到一些突然事件的影响,例如:你正在使用一个Activity,突然来了一个电话,这是你的应用就要具备处理这些突发事件的能力,要处理这些突发事件,就要用到Activity的生命周期。

Activity有三种状态:运行状态,暂停状态,停止状态。

当从一种状态转变到另一种状态时,会调用以下保护方法来通知这种变化:

void onCreate(Bundle savedInstanceState)

void onStart()

void onRestart()

void onResume()

void onPause()

void onStop()

void onDestory()

代码完成之后应添加一个过滤器,监测应用所调用的方法的变化。

MainActivity.java



public class MainActivity extends Activity {
private static String TAG="MainActivity";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.i(TAG,"onCreate()");
    }
    public void onPauseActivity(View v) {
    startActivity(new Intent(this,PauseActivity.class));
    }
    public void onStopActivity(View v) {
    startActivity(new Intent(this,StopActivity.class));
    }
@Override
protected void onDestroy() {

Log.i(TAG,"onDestroy()");
super.onDestroy();
}


@Override
protected void onPause() {

Log.i(TAG,"onPause()");
super.onPause();
}


@Override
protected void onRestart() {

Log.i(TAG,"onRestart()");
super.onRestart();
}


@Override
protected void onResume() {

Log.i(TAG,"onResume()");
super.onResume();
}




@Override
protected void onStart() {

Log.i(TAG,"onStart()");
super.onStart();
}


@Override
protected void onStop() {

Log.i(TAG,"onStop()");
super.onStop();
}




  
    
}



PauseActivity .java



public class PauseActivity extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pause);
}


StopActivity .java



public class StopActivity extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_stop);
}





}

activity_main.xml


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >


    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />
    <Button 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="打开我会使当前Activity处于暂停状态"
        android:onClick="onPauseActivity"/>
    <Button 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="打开我会使当前Activity处于停止状态"
        android:onClick="onStopActivity"/>


</LinearLayout>

另外还需在清单文件中配置:

 <activity
            android:name="com.example.activitylife.PauseActivity"
            android:label="@string/title_activity_pause"
            android:theme="@android:style/Theme.Dialog" >
        </activity>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值