解析android中onSaveInstanceState方法和onNewIntent方法

onNewIntent(Intent intent)

该方法是和Activity的启动模式挂钩的,用在启动模式为:singleTask中(如果栈中有该实例,就销毁之上所有的Activity,然后至于栈顶)。

第一次创建该Activity时,不会执行onnewIntent方法,
当从另一个Activity返回到该Activity时,执行该方法,onNewIntent()>onRestart()>onStart()>onResume()。

如果是系统Kill掉了进程,那么不执行该方法。

注意:在onNewIntent(Intent intent)方法内部使用setIntent(Intent intent),也就是更新Activity中的Intent,避免使用老的Intent。

onSaveInstanceState

onSaveInstanceState 也就是保存数据的,保存的是临时数据;如果突发情况kill掉了app,那么此时onSaveInstanceState就被调用了。以下几种是情况onSaveInstanceState 能被执行:
1:长按home键,
2:电源键关闭屏幕
3:横竖屏切换
4:activity跳转
5:应用内存不足时,回收掉该activity。

注意:如果是手动调用finish(),那么不执行该方法!

onSaveInstanceState如果被调用,那么一定是在onStop()方法之前调用。

当kill掉app时,不一定走onSaveInstanceState方法,但是一定会走onPause方法,所以我们可以在onPause方法中保存一些持久性数据。

注意:当需要恢复数据时,记得在onCreate中判null操作。

你可能感兴趣的:(android开发)