android onRestoreInstanceState调用时序

 

onRestoreInstanceState调用时序

android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3815)
android.app.ActivityThread.access$2400(ActivityThread.java:125)
android.app.ActivityThread$H.handleMessage(ActivityThread.java:2037)
android.os.Handler.dispatchMessage(Handler.java:99)
android.os.Looper.loop(Looper.java:123)
android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:521)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
dalvik.system.NativeStart.main(Native Method)
 Caused by: java.lang.NullPointerException
sundy.android.demo.activity.MainTestActivity.onRestoreInstanceState(MainTestActivity.java:76)
android.app.Activity.performRestoreInstanceState(Activity.java:815)
android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1096)
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2641)

 

备注:当由于错误导致拥有activity的process终止时(例如空指针引起的process终止),再次启动该activity不会调用onRestoreInstanceState

 

finish时调用吗?

startActivity时调用吗?--调用

Home键时调用吗?

power键时调用吗?

toast显示时调用吗?

dialog显示时调用吗?

配置变更(例如横竖屏)时调用吗?

被其他activity掩盖时(电话割入)调用吗?

 

很多网友可能知道Android横竖屏切换时会触发onSaveInstanceState,而还原时会产生 onRestoreInstanceState,但是Android的Activity类还有一个方法名为 onRetainNonConfigurationInstance和getLastNonConfigurationInstance这两个方法。

 

03-04 03:00:07.234: D/AndroidRuntime(289): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
03-04 03:00:07.234: D/AndroidRuntime(289): CheckJNI is ON
03-04 03:00:08.614: D/AndroidRuntime(289): --- registering native functions ---
03-04 03:00:09.954: D/dalvikvm(251): GC_EXPLICIT freed 507 objects / 28768 bytes in 118ms
03-04 03:00:11.324: D/PackageParser(59): Scanning package: /data/app/vmdl64123.tmp
03-04 03:00:11.784: I/PackageManager(59): Removing non-system package:com.david.bitmapapp
03-04 03:00:11.784: I/ActivityManager(59): Force stopping package com.david.bitmapapp uid=10040
03-04 03:00:11.885: D/PackageManager(59): Scanning package com.david.bitmapapp
03-04 03:00:11.885: I/PackageManager(59): Package com.david.bitmapapp codePath changed from /data/app/com.david.bitmapapp-1.apk to /data/app/com.david.bitmapapp-2.apk; Retaining data and using new
03-04 03:00:11.894: I/PackageManager(59): /data/app/com.david.bitmapapp-2.apk changed; unpacking
03-04 03:00:11.904: D/installd(35): DexInv: --- BEGIN '/data/app/com.david.bitmapapp-2.apk' ---
03-04 03:00:12.484: D/dalvikvm(296): DexOpt: load 173ms, verify 189ms, opt 1ms
03-04 03:00:12.494: D/installd(35): DexInv: --- END '/data/app/com.david.bitmapapp-2.apk' (success) ---
03-04 03:00:12.494: W/PackageManager(59): Code path for pkg : com.david.bitmapapp changing from /data/app/com.david.bitmapapp-1.apk to /data/app/com.david.bitmapapp-2.apk
03-04 03:00:12.494: W/PackageManager(59): Resource path for pkg : com.david.bitmapapp changing from /data/app/com.david.bitmapapp-1.apk to /data/app/com.david.bitmapapp-2.apk
03-04 03:00:12.505: D/PackageManager(59):   Activities: com.david.bitmapapp.BitmapAppActivity com.david.bitmapapp.SecondActivity
03-04 03:00:12.644: D/dalvikvm(59): GC_FOR_MALLOC freed 8249 objects / 510912 bytes in 138ms
03-04 03:00:12.665: I/ActivityManager(59): Force stopping package com.david.bitmapapp uid=10040
03-04 03:00:12.795: I/installd(35): move
/data/dalvik-cache/data@app@com.david.bitmapapp-2.apk@classes.dex ->/data/dalvik-cache/data@app@com.david.bitmapapp-2.apk@classes.dex
03-04 03:00:12.795: D/PackageManager(59): New package installed in /data/app/com.david.bitmapapp-2.apk
03-04 03:00:12.934: I/ActivityManager(59): Force stopping package com.david.bitmapapp uid=10040
03-04 03:00:13.005: D/dalvikvm(115): GC_EXPLICIT freed 860 objects / 47160 bytes in 62ms
03-04 03:00:13.295: W/RecognitionManagerService(59): no available voice recognition services found
03-04 03:00:13.346: D/dalvikvm(150): GC_EXPLICIT freed 2368 objects / 128648 bytes in 313ms
03-04 03:00:13.644: D/dalvikvm(59): GC_EXPLICIT freed 6377 objects / 386736 bytes in 290ms
03-04 03:00:13.684: I/installd(35): unlink
/data/dalvik-cache/data@app@com.david.bitmapapp-1.apk@classes.dex
03-04 03:00:13.694: D/AndroidRuntime(289): Shutting down VM
03-04 03:00:13.704: D/dalvikvm(289): Debugger has detached; object registry had 1 entries
03-04 03:00:13.724: I/AndroidRuntime(289): NOTE: attach of thread 'Binder Thread #3' failed
03-04 03:00:14.274: D/AndroidRuntime(302): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
03-04 03:00:14.274: D/AndroidRuntime(302): CheckJNI is ON
03-04 03:00:15.215: D/AndroidRuntime(302): --- registering native functions ---
03-04 03:00:16.864: I/ActivityManager(59): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.david.bitmapapp/.BitmapAppActivity }
03-04 03:00:16.904: D/AndroidRuntime(302): Shutting down VM
03-04 03:00:16.904: D/jdwp(302): Got wake-up signal, bailing out of select
03-04 03:00:16.904: D/dalvikvm(302): Debugger has detached; object registry had 1 entries
03-04 03:00:16.934: I/ActivityManager(59): Start proc com.david.bitmapapp for activity com.david.bitmapapp/.BitmapAppActivity: pid=309 uid=10040 gids={}
03-04 03:00:17.625: I/ActivityManager(59): Displayed activity com.david.bitmapapp/.BitmapAppActivity: 699 ms (total 699 ms)
03-04 03:00:22.875: D/dalvikvm(115): GC_EXPLICIT freed 765 objects / 43128 bytes in 131ms
03-04 03:00:27.934: D/dalvikvm(251): GC_EXPLICIT freed 216 objects / 14384 bytes in 125ms
03-04 03:00:32.915: D/dalvikvm(262): GC_EXPLICIT freed 768 objects / 55312 bytes in 52ms
03-04 03:00:46.554: I/ActivityManager(59): Starting activity: Intent { cmp=com.david.bitmapapp/.SecondActivity }
03-04 03:00:46.584: I/BitmapAppActivity(309): BitmapAppActivity.onSaveInstanceState
03-04 03:00:47.968: I/ActivityManager(59): Displayed activity com.david.bitmapapp/.SecondActivity: 1382 ms (total 1382 ms)
03-04 03:01:23.264: I/ActivityManager(59): Process android.process.acore (pid 150) has died.
03-04 03:01:25.585: I/ActivityManager(59): Process com.android.alarmclock (pid 156) has died.
03-04 03:01:25.814: I/ActivityManager(59): Process com.android.settings (pid 118) has died.
03-04 03:01:26.295: I/ActivityManager(59): Process com.android.mms (pid 214) has died.
03-04 03:01:28.635: I/ActivityManager(59): Process com.android.email (pid 230) has died.
03-04 03:01:29.146: I/ActivityManager(59): Process com.android.protips (pid 195) has died.
03-04 03:01:32.545: I/ActivityManager(59): Process com.android.music (pid 169) has died.
03-04 03:01:32.625: I/ActivityManager(59): Process com.android.quicksearchbox (pid 179) has died.
03-04 03:01:32.795: I/ActivityManager(59): Process android.process.media (pid 201) has died.
03-04 03:01:34.465: I/ActivityManager(59): Process com.android.defcontainer (pid 251) has died.
03-04 03:01:34.595: I/ActivityManager(59): Process com.svox.pico (pid 262) has died.
03-04 03:01:34.595: I/ActivityManager(59): Low Memory: No more background processes.
03-04 03:01:34.864: I/ActivityManager(59): Process com.android.launcher (pid 115) has died.
03-04 03:01:34.864: I/WindowManager(59): WIN DEATH: Window{4506a548 com.android.launcher/com.android.launcher2.Launcher paused=false}
03-04 03:01:34.875: I/ActivityManager(59): Low Memory: No more background processes. (因为加载图片,大量的background process被杀死)
03-04 03:01:39.915: D/skia(113): purging 6K from font cache [1 entries]
03-04 03:01:39.995: D/dalvikvm(113): GC_EXPLICIT freed 4201 objects / 224872 bytes in 70ms
03-04 03:01:44.915: I/BitmapAppActivity(309): BitmapAppActivity.onLowMemory
03-04 03:01:44.915: I/BitmapAppActivity(309): SecondActivity.onLowMemory
03-04 03:01:44.915: I/BitmapAppActivity(309): BitmapApplication.onLowMemory  (通过加载图片,造成app调用onLowMemory)
03-04 03:01:44.915: D/skia(309): purging 46K from font cache [6 entries]
03-04 03:01:44.984: D/dalvikvm(309): GC_EXPLICIT freed 1554 objects / 92944 bytes in 68ms
03-04 03:01:49.995: D/skia(59): purging 232K from font cache [28 entries]
03-04 03:01:50.084: D/dalvikvm(59): GC_EXPLICIT freed 3518 objects / 176560 bytes in 88ms
03-04 03:01:50.094: D/SntpClient(59): request time failed: java.net.SocketException: Address family not supported by protocol
03-04 03:01:55.014: D/skia(109): purging 6K from font cache [1 entries]
03-04 03:01:55.094: D/dalvikvm(109): GC_EXPLICIT freed 663 objects / 157128 bytes in 79ms
03-04 03:03:12.674: W/KeyCharacterMap(309): No keyboard for id 0
03-04 03:03:12.674: W/KeyCharacterMap(309): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
03-04 03:03:45.354: I/ActivityManager(59): Starting activity: Intent { cmp=com.david.bitmapapp/.SecondActivity }
03-04 03:03:45.385: I/BitmapAppActivity(309): BitmapAppActivity.onSaveInstanceState  (跳转到SecondActivity)
03-04 03:03:46.169: I/ActivityManager(59): Displayed activity com.david.bitmapapp/.SecondActivity: 782 ms (total 782 ms)
03-04 03:05:53.454: I/ActivityManager(59): Process jp.co.omronsoft.openwnn (pid 109) has died.
03-04 03:05:53.466: W/ActivityManager(59): Scheduling restart of crashed service jp.co.omronsoft.openwnn/.OpenWnnJAJP in 5000ms
03-04 03:05:53.475: I/ActivityManager(59): Low Memory: No more background processes.
03-04 03:05:57.364: I/ActivityManager(59): Start proc com.android.settings for broadcast com.android.settings/.widget.SettingsAppWidgetProvider: pid=315 uid=1000 gids={3002, 3001, 3003}
03-04 03:05:57.374: I/ActivityManager(59): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10200000 cmp=com.android.launcher/com.android.launcher2.Launcher }
03-04 03:05:57.584: I/BitmapAppActivity(309): SecondActivity.onSaveInstanceState (HOME键切出)
03-04 03:05:57.624: I/ActivityManager(59): Start proc com.android.launcher for activity com.android.launcher/com.android.launcher2.Launcher: pid=319 uid=10025 gids={}
03-04 03:05:58.175: I/ActivityManager(59): Process com.david.bitmapapp (pid 309) has died. (app died后,SaveInstanceState 仍然可被保留)
03-04 03:05:58.175: I/ActivityManager(59): Low Memory: No more background processes.
03-04 03:05:58.175: I/WindowManager(59): WIN DEATH: Window{44fb7ff8 com.david.bitmapapp/com.david.bitmapapp.SecondActivity paused=false}   (SecondActivity 窗口被摧毁)
03-04 03:05:58.185: I/WindowManager(59): WIN DEATH: Window{45038c58 com.david.bitmapapp/com.david.bitmapapp.BitmapAppActivity paused=false} (BitmapAppActivity 窗口被摧毁)
03-04 03:05:58.414: I/ActivityThread(319): Publishing provider com.android.launcher2.settings: com.android.launcher2.LauncherProvider
03-04 03:05:58.484: I/ActivityManager(59): Start proc jp.co.omronsoft.openwnn for service jp.co.omronsoft.openwnn/.OpenWnnJAJP: pid=327 uid=10023 gids={}
03-04 03:05:58.644: D/dalvikvm(33): GC_EXPLICIT freed 264 objects / 10080 bytes in 167ms
03-04 03:05:58.684: D/dalvikvm(319): GC_EXTERNAL_ALLOC freed 1113 objects / 78320 bytes in 179ms
03-04 03:05:58.795: D/dalvikvm(33): GC_EXPLICIT freed 27 objects / 1200 bytes in 132ms
03-04 03:05:58.975: D/dalvikvm(33): GC_EXPLICIT freed 2 objects / 64 bytes in 139ms
03-04 03:05:59.204: D/dalvikvm(327): No JNI_OnLoad found in /system/lib/libwnndict.so 0x44eded00, skipping init
03-04 03:05:59.335: D/dalvikvm(327): GC_FOR_MALLOC freed 1587 objects / 249536 bytes in 101ms
03-04 03:05:59.604: W/InputManagerService(59): Got RemoteException sending setActive(false) notification to pid 309 uid 10040
03-04 03:05:59.635: D/dalvikvm(327): GC_FOR_MALLOC freed 518 objects / 399664 bytes in 146ms
03-04 03:06:00.095: I/ActivityManager(59): Displayed activity com.android.launcher/com.android.launcher2.Launcher: 2491 ms (total 2491 ms)
03-04 03:06:01.085: D/dalvikvm(319): GC_EXPLICIT freed 12020 objects / 608976 bytes in 61ms
03-04 03:06:05.854: D/dalvikvm(113): GC_EXPLICIT freed 961 objects / 51496 bytes in 47ms
03-04 03:06:10.849: D/skia(59): purging 14K from font cache [2 entries]
03-04 03:06:10.934: D/dalvikvm(59): GC_EXPLICIT freed 4182 objects / 212584 bytes in 86ms
03-04 03:06:49.134: D/StatusBar(59): DISABLE_EXPAND: yes
03-04 03:06:50.118: D/SntpClient(59): request time failed: java.net.SocketException: Address family not supported by protocol
03-04 03:06:51.445: I/ActivityManager(59): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10100000 cmp=com.david.bitmapapp/.BitmapAppActivity }
03-04 03:06:51.465: I/ActivityManager(59): Start proc com.david.bitmapapp for activity com.david.bitmapapp/.SecondActivity: pid=338 uid=10040 gids={}
03-04 03:06:51.494: W/InputManagerService(59): Window already focused, ignoring focus gain of:
com.android.internal.view.IInputMethodClient$Stub$Proxy@44fe9db0
03-04 03:06:52.174: I/BitmapAppActivity(338): SecondActivity.onRestoreInstanceState  (HOME键切回)
03-04 03:06:52.374: I/ActivityManager(59): Displayed activity com.david.bitmapapp/.SecondActivity: 918 ms (total 918 ms)
03-04 03:07:33.227: W/KeyCharacterMap(338): No keyboard for id 0
03-04 03:07:33.234: W/KeyCharacterMap(338): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
03-04 03:07:33.495: I/BitmapAppActivity(338): BitmapAppActivity.onRestoreInstanceState (Back键盘切回)

 示例代码:http://download.csdn.net/detail/imyfriend/4110687

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值