您的位置:首页 > 其它

BaseActivity(Activity生命周期)

2015-06-30 15:57 375 查看
这篇文章主要介绍actiivty的生命周期,并献上平时项目中用到的一个类,个人觉得挺好的,代码如下:

public class BaseActivity extends Activity implements View.OnClickListener{

public static LinkedList mlist=new LinkedList();

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

mlist.add(this);
}

@Override
protected void onDestroy()
{

super.onDestroy();
mlist.remove(this);
}

/***
*用于程序结束退出,当然代码每个activity都要继承该Baseadtivity
*/
public static void finish_all() {
for (Activity mactivity : mlist) {
mactivity.finish();
}
mlist.clear();
}

@Override
public void onClick(View v) {

}


}

这是我常用管理activity的一个类,好处在于你可以一次结束所有的activity,于此同时你可以遍历知道哪个activity还在栈中,onclick方法基本每个activity都会使用,减少代码量。下面来介绍activity的生命周期:

随着activty自身状态的变化,系统会调用相应的回调函数,也称呼为activity的生命周期,如下:

1、onCreate()—> 2、onStart()—> 3、onResume()—> 4、onPause()—>onSaveInstantceState()–> 5、onStop()—> onCreate()—>onStart()—>onRestoreInstanceState()—>onResume()

(注释) 以上为当A activity跳转到B activity并且跳转后A activity活动不保留,我们可以看到跳之前会暂停当前活动并保存当前用户数据(onSaveInstantceState()),停止当前活动,跳之后,A结束,当A再次回到前台进程时,A会再次执行oncreated,onstart(),恢复销毁前执行的onSaveInstantceState所保存的数据。其实主要强调(onSaveInstantceState(),onRestoreInstanceState())他们不在生命周期中,但是确实是被调用过,开发中可以利用一下。

当A跳转B时,A只是看不见的话并未消失的话,那么就不会再次执行oncreate(),而是执行的 6、onRestart(),也不会执行onRestoreInstanceState(),因为A活动并未消失,并未 7、OnDeatory().

以上7个就是activity的生命周期。

PS(MARKDOWN编辑器,三个#代表三号字体,三个*代表小三号字体,其他的暂时没想出来,日后有好点子再对此文编辑)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: