您的位置:首页 > 其它

安卓突击:Activity的基础知识

2015-08-20 11:27 232 查看
1,Activity的生命周期必须调用的三个方法,onCreate() --> onStart() --> onResume(),用 AAA 表示( 1 )父 Activity 启动子 Activity,子 Actvity 退出,父 Activity 调用顺序如下AAA --> onFreeze() --> onPause() --> onStop() --> onRestart() --> onStart(),onResume() …( 2)用户点击 Home, Actvity 调用顺序如下AAA --> onFreeze() --> onPause() --> onStop() -- Maybe --> onDestroy() – Maybe( 3)调用 finish(), Activity 调用顺序如下AAA --> onPause() --> onStop() --> onDestroy()( 4)在 Activity 上显示 dialog, Activity 调用顺序如下AAA( 5)在父 Activity 上显示透明的或非全屏的 activity, Activity 调用顺序如下AAA --> onFreeze() --> onPause()( 6)设备进入睡眠状态, Activity 调用顺序如下AAA --> onFreeze() --> onPause()

2,如果后台Activity由于某种原因被系统回收,通过onSaveInstanceState()来保存当前的状态。

3,如何退出 Activity?如何安全退出已调用多个 Activity 的 Application?对于单一 Activity 的应用来说,退出很简单,直接 finish() 即可。也可以用 killProcess() 和 System.exit() 这样的方法。
对于多个Activity来说,可以有如下几个方法:
1)、抛异常强制退出:该方法通过抛异常,使程序 Force Close。验证可以,但是,需要解决的问题是,如何使程序结束掉,而不弹出 Force Close 的窗口。2)、记录打开的 Activity:每打开一个 Activity,就记录下来。在需要退出时,关闭每一个 Activity 即可。3)、发送特定广播:在需要结束应用时,发送一个特定的广播,每个 Activity 收到广播后,关闭即可。4)、递归退出在打开新的 Activity 时使用 startActivityForResult,然后自己加标志,在 onActivityResult 中处理,递归关闭。除了第一个,都是想办法把每一个 Activity 都结束掉,间接达到目的。但是这样做同样不完美。你会发现,如果自己的应用程序对每一个 Activity 都设置了 nosensor,在两个 Activity 结束的间隙, sensor 可能有效了。

4

来自为知笔记(Wiz)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: