• 安卓突击:Activity的基础知识


    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







































  • 相关阅读:
    状压dp学习笔记
    dbcc log(转)
    日志分析 操作(转)
    Sql server 2005系统表详细说明
    c#读取并分析sqlServer据库日志(转)
    [POJ]1915 Knight Moves
    [JOY]1143 飘飘乎居士的约会
    [POJ]1164 The Castle
    win7注册ocx时出现对DllRegisterServer的调用失败,错误代码为0x80040200解决方案
    注册DLL、OCX的方法
  • 原文地址:https://www.cnblogs.com/zhuzhenfeng/p/4744628.html
Copyright © 2020-2023  润新知