Android开发之Activity的生命周期

一、Activity是指应用程序组件讲的通俗点就是应用程序界面的生命周期,一个应用程序有很多个Activity组成,那么了解Activity的生命周期尤为重要。

       首先根据Android提供的SDK可以看到Activity的生命周期状态有以下几种:

      1.OnCreate():即创建一个Activity简单的创建一个Android应用程序不必添加代码就能看到一个Activity的创建过程

                        public class main extends Activity 
			{
    		                      public void onCreate(Bundle savedInstanceState) 
				{
        	                      super.onCreate(savedInstanceState);
		                      setContentView(R.layout.main);
				}
			}


       2.onStart():当一个应用程序启动后系统会自动调用onStart()方法启动应用程序界面

      3.onResume():在onStart()被调用后系统会调用此Avtivity的onResume()方法,此时进入Activity运行状态。进入消息监听状态。

   4.onPause():当当前Activity跳转到另外一个Activity的时候(或者系统锁屏)系统会调用onPause()方法,先暂停当前的Activity但是没有销毁。

      5.onStop():当第二个Activity启动后(包含创建、启动、进入监听状态即执行OnCreate()、onStart()、onResume()方法)第一个系统调用onStop()          方法停止第一个Activity.

      6.onRestart():当按返回键时第二个Activity进入onPause()状态,系统调用第一个Activity的onRestart()方法(此处不是调用onCreate()方法,因为            第一个Activity只是进入停止状态没有销毁),然后再调用onStart()、onResume()方法进入消息监听。

   7.onDestory():当退出应用程序时系统调用onDestory()方法。为了节约系统资源有时候需要手动销毁Activity这时候可以通过调用

          this.finish()来手动销毁Activity,还有使用广播机制也可以终止Activity,具体代码实现如下:
public abstract class EnterActivity extends BaseActivity {  
...  
    // 写一个广播的内部类,当收到动作时,结束activity  
    private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {  
        @Override  
        public void onReceive(Context context, Intent intent) {  
            unregisterReceiver(this); // 这句话必须要写要不会报错,不写虽然能关闭,会报一堆错  
            ((Activity) context).finish();  
        }  
    };  
  
    @Override  
    public void onResume() {  
        super.onResume();  
  
        // 在当前的activity中注册广播  
        IntentFilter filter = new IntentFilter();  
        filter.addAction(Attribute.PAGENAME);  
        registerReceiver(this.broadcastReceiver, filter); // 注册  
    }  
  
      
    public void close() {  
        Intent intent = new Intent();  
        intent.setAction(Attribute.PAGENAME); // 说明动作  
        sendBroadcast(intent);// 该函数用于发送广播  
        finish();  
    }  
...  
}
二、查阅Android提供的SDK可以看到有如下流程图:
此流程图即是第一部分讲解的Activity流程。
大家可以实践一下查看Activity的各种运行状态详见mars老师的代码,此处就不粘贴了!
 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值