zoukankan      html  css  js  c++  java
  • 安卓突击: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







































  • 相关阅读:
    虚拟化技术
    软件产业的知识经济 (蔡学墉)
    关于内存对齐
    Reverse Engineering
    [转]今天的操作系统 
    BasicBIOS & CMOS
    [bbk5355]第18集 Chapter 08 Handling Exceptions(01)
    [bbk1452]第1集 在Apache中使用SSL
    Linux>User Manager
    如何更新linux系统时间
  • 原文地址:https://www.cnblogs.com/zhuzhenfeng/p/4744628.html
Copyright © 2011-2022 走看看