WEB开发网
开发学院手机开发Android 开发 Android Activity生命周期的学习以及Logcat的使用... 阅读

Android Activity生命周期的学习以及Logcat的使用

 2010-05-31 13:51:00 来源:WEB开发网   
核心提示:中来取消注册,这时用户是无法看到你的程序显示的内容的,Android Activity生命周期的学习以及Logcat的使用(3),onStart() 和 onStop() 方法可以随着应用程序是否为用户可见而被多次调用,3. 一个activity的 前台生命周期 自 onResume() 调用起,如果启动的activi
中来取消注册,这时用户是无法看到你的程序显示的内容的。onStart() 和 onStop() 方法可以随着应用程序是否为用户可见而被多次调用。

3. 一个activity的 前台生命周期 自 onResume() 调用起,至相应的 onPause()调用为止。在此期间,activity位于前台最上面并与用户进行交互。activity会经常在暂停和恢复之间进行状态转换──比如说当设备转入休眠状态或有新的activity启动时,将调用onPause() 方法。当activity获得结果或者接收到新的intent的时候会调用onResume() 方法。因此,在这两个方法中的代码应当是轻量级的。

当一个activity从这个状态转变到另一个状态时,它被以下列protected方法所通知:

public class Activity extends ApplicationContext { protected void onCreate(Bundle savedInstanceState); protected void onStart(); protected void onRestart(); protected void onResume(); protected void onPause(); protected void onStop(); protected void onDestroy(); }

我们可以重载所有这些方法以在状态改变时进行合适的工作。所有的activity都必须实现 onCreate() 用以当对象第一次实例化时进行初始化设置。很多activity会实现 onPause()以提交数据变化或准备停止与用户的交互。

要注意的是,onPause(),onStop(),onDestory()这3个方法是可以被系统直接kill的,当系统内存不足的时候。而平常从一个activity转向/回到另一个activity时,当新activity是full screen(弹出窗口,例如AlertDialog是不算的)的时候就会call 前一个activity的onPause(),然后call onStop(),而无论onPause或者onStop,都有可能被kill,所以一般在onPause就会执行savedata操作将所有持久性数据(比如用户的编辑结果)写入存储之中。

现在我们来看看两个activity在同一个进程内的调用情况:

1. 调用当前activity的 onPause() 方法。

2. 接着调用新启动activity的onCreate()、 onStart()和onResume()方法。

3. 然后,如果启动的activity不再于屏幕上可见,则调用它的onStop()方法。

以下我使用Logcat记录下来的Activity调用过程中的方法调用顺序:

1. 点击按钮去启动 Activity1,就会看到

05-08 09:39:48.389: DEBUG/Activity1(313): onCreate Activity 1 05-08 09:39:48.399: DEBUG/Activity1(313): onStart Activity 1 05-08 09:39:48.399:

上一页  1 2 3 4 5 6  下一页

Tags:Android Activity 生命

编辑录入:coldstar [复制链接] [打 印]
赞助商链接