怎样实现android 返回到上一个Activity并重新执行一次onCreate方法

对于android新手来说,大都对activity的生命周期不是太了解,有关activity的生命周期方法执行顺序,我这里看到一篇文章http://www.2cto.com/kf/201409/334386.html

如下是一段典型的从AActivity切换到BActivity的日志,:

10-17 20:54:46.997: I/com.example.servicetest.AActivity(5817): onPause() 1166919192 taskID=66
10-17 20:54:47.021: I/com.example.servicetest.BActivity(5817): onCreate() 1166971824 taskID=66
10-17 20:54:47.028: I/com.example.servicetest.BActivity(5817): onStart() 1166971824 taskID=66
10-17 20:54:47.028: I/com.example.servicetest.BActivity(5817): onResume() 1166971824 taskID=66
10-17 20:54:47.099: I/com.example.servicetest.AActivity(5817): onStop() 1166919192 taskID=66

先AActivity的onPause()被调用,然后是BActivity的初始化流程(onCreate() --> onStart() --> onResume()),再然后是AActivity的onStop()被调用。

了解了activity生命周期方法的执行顺序之后,我们就可以解决文章标题中提到的问题。

新手们大多都喜欢把所有的初始化都写在onCreate()方法里面

如果所有的初始化都在onCreate()中实现,会有什么问题?

出自http://www.2cto.com/kf/201409/334386.html

首先,Activity的onCreate()被调用时,Activity还不可见,如果要做一些动画,既然视图还不存在,在onCreate中来启动动画,明显有问题;

其次,AActivity 切换到 BActivity,再切换到 AActivity(我们假定是AActivity的同一个实例),由于实例已经存在,所以onCreate不会再被调

用,那AActivity从后台切换至前台时,有可能需要一些初始化,那就没法再被调用到了,也有问题;


所以Activity从后台切换至前台时,如果需要一些初始化,就必须将初始化写在onResume ()方法里面


你可能感兴趣的:(android)