Android Activity生命周期的学习以及Logcat的使用
2010-05-31 13:51:00 来源:WEB开发网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记录信息
赞助商链接