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

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

 2010-05-31 13:51:00 来源:WEB开发网   
核心提示:DEBUG/Activity1(313): onStart Activity 1 05-08 09:41:04.998: DEBUG/Activity1(313): onResume Activity 1 05-08 09:41:05.419: DEBUG/Activity2(313): onStop Activity
DEBUG/Activity1(313): onStart Activity 1 05-08 09:41:04.998: DEBUG/Activity1(313): onResume Activity 1 05-08 09:41:05.419: DEBUG/Activity2(313): onStop Activity 2 05-08 09:41:05.469: DEBUG/Activity2(313): onDestory Activity 2

Activity2.onPause - > Activity1.onRestart - > Activity1.onStart - > Activity1.onResume - > Activity2.onStop

8. 点击back返回键后

05-08 09:41:51.868: DEBUG/Activity1(313): onPause Activity 1 05-08 09:41:52.428: DEBUG/Activity1(313): onStop Activity 1 05-08 09:41:52.468: DEBUG/Activity1(313): onDestory Activity 1

Activity1 退出:onPause -> onStop -> onDestory

保存activity状态

保存activity状态,是为了方便用户重新打开程序时,能够回到上次离开时的状态。这里面涉及到的方法有:

protected void onSaveInstanceState (Bundle outState)

protected void onRestoreInstanceState (Bundle savedInstanceState)

当一个Activity被kill之前,它可以调用onSaveInstanceState()来保存当前activity的状态信息,它会将一个以名称-值对方式记录了activity动态状态的Bundle对象传递给该方法。当activity再次启动时,这个Bundle会传递给onCreate()方法和随着onStart()方法调用的 onRestoreInstanceState()。这两个方法的内容一般是把要临时保存的数据放到Bundle里面,或者从里面拿出来。

要注意的是,onSaveInstanceState() 和 onRestoreInstanceState() 并不是生命周期方法。它们并不是总会被调用。比如说,Android会在activity易于被系统销毁之前调用 onSaveInstanceState(),但用户动作(比如按下了BACK键)造成的销毁则不调用。在这种情况下,用户没打算再次回到这个 activity,所以没有保存状态的必要。因为onSaveInstanceState()不是总被调用,所以你应该只用它来为activity保存一些临时的状态,而不能用来保存持久性数据。而是应该用onPause()来达到这个目的:?在onPause()里面调用自定义命名的函数saveState(),在saveState里面保存数据到数据库。

Logcat的使用

1. import android.util.Log;

2. private static final String TAG = "Activity1"; 设置TAG

3. Log.d(TAG, message); log记录信息

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

Tags:Android Activity 生命

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