• 安卓突击: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







































  • 相关阅读:
    个人冲刺二(7)
    个人冲刺二(6)
    个人冲刺二(5)
    个人冲刺二(4)
    对称二叉树 · symmetric binary tree
    108 Convert Sorted Array to Binary Search Tree数组变成高度平衡的二叉树
    530.Minimum Absolute Difference in BST 二叉搜索树中的最小差的绝对值
    pp 集成工程师 mism师兄问一问
    17. Merge Two Binary Trees 融合二叉树
    270. Closest Binary Search Tree Value 二叉搜索树中,距离目标值最近的节点
  • 原文地址:https://www.cnblogs.com/zhuzhenfeng/p/4744628.html
Copyright © 2020-2023  润新知