本文主要是介绍BaseActivity(Activity生命周期),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这篇文章主要介绍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()---> activity 被创建,做一些初始化的行为,比如加载布局资源
2. onRestart()-->actiivty正在重新启动,当当前activity由不可见变成可见时,onRestart就会被调用。
3. onStart()---> activity可见,未出现在前台无法和用户交互,已显示,但看不见
4. onResume()---> activity可见,出现在前台和用户交互
5. onPause()--->activity正在停止,紧接着就是onstop,如果快速再回到当前,onResume就会被调用,可以在此方法停止动画但不要做耗时操作,因为onPause必须先执行完,新activity的onResume才会执行。 onSaveInstantceState()--> 6. onStop()---> activity即将停止7. onDestory()-->activity即将被销毁,做回收工作和最终的资源释放
(注释) 以上为当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的生命周期。
这篇关于BaseActivity(Activity生命周期)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!