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

来自为知笔记(Wiz)

时间: 2024-08-03 07:33:29

安卓突击:Activity的基础知识的相关文章

如何学习安卓(android)开发,需要学习哪些基础知识?

随着智能手机的流行,现在很多大大小小的开发商都需要在手机上具备客户端,这里是一片强大的吸金磁场,那么很多想学习android的朋友,都会有个疑问,那就是:安卓(android)应该怎么学,需要哪些基础知识? 下面是我根据自己和周围朋友的一些经验,总结出来的几点,希望对想学安卓(Android)开发的朋友有所帮助. 1.安卓(Android)开发的分类: (1)安卓(Android)底层开发:我们需要掌握C语音.Linux操作系统等比较底层的知识,以后的发展方向应该是驱动.嵌入式开发.协议开发.

程序员带你学习安卓开发,十天快速入门-基础知识(四)

关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到熟悉的效果. 本系列课程是.Net程序员学习安卓开发系列课程. 下面是前三次课程列表: 程序员带你学习安卓开发,十天快速入门-安卓学习必要性 程序员带你学习安卓开发,十天快速入门-开发工具配置学习 程序员带你学习安卓开发,十天快速入-对比C#学习java语法 为了大家系统有效的快速入门安卓开发,推荐

android基础知识

1. 前言 1.1. 什么是3G.4G Ÿ 第三代移动通信技术(3rd - Generation),速率一般在几百Kbps,较之前的2G和2.5G在数据传输速度上有很大提升. Ÿ 第四代移动通信技术(4th - Generation),速度可达到100Mbps以上,几乎可以满足人们的所有传输数据的需求. Ÿ 目前主流的3G技术标准有三种: WCDMA:全球80%以上的3G网络都是采用此种制式.中国联通运营.186 CDMA2000:目前日韩及北美使用较多.中国电信运营. 189 TD-SCDMA

BroadcastReceive基础知识总结

BroadcastReceive基础知识总结 1.BroadcastReceive简介 BroadcastReceive也就是"广播接收者"的意思,顾名思义,就是用来接收来自系统和应用中的广播 在Android系统中,广播体现在方方面面,例如当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能,当网络状态改变时,系统会产生一条广播,接收到这条广播,就能及时的做出提示和保存数据等操作,当电池的电量改变的时候,系统会产生一条广播,接收到这条广播就能在电量低的时候告知用户

Keepalived基础知识

大纲: 一.什么是Keepalived? 二.VRRP协议简介. 三.Keepalived原理. 四.Keepalived配置文件详解. 五.Keepalived配置示例. 一.什么是Keepalived? 什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了,也就是所谓的高可用或热备,用来防止单点故障(单点故障是指一旦某一点出现故障就会导致整个系统架构的不可用)的发生,那说到keepalived时不得不说的一个协议就是VRRP协议,可以说这个协议就是

安卓一步步从基础到精通自学教程,纯实战,纯干货(五)

关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到熟悉的效果. 本系列课程是.Net程序员学习安卓开发系列课程. 下面是前四次课程列表: 程序员带你学习安卓开发,十天快速入门-安卓学习必要性 程序员带你学习安卓开发,十天快速入门-开发工具配置学习 程序员带你学习安卓开发,十天快速入-对比C#学习java语法 程序员带你学习安卓开发,十天快速入门-基

Android应用基础知识

Android 应用采用 Java 编程语言编写.Android SDK 工具将您的代码-连同任何数据和资源文件-编译到一APK: Android 软件包,即带有 .apk 后缀的存档文件中.一个 APK 文件包含 Android 应用的所有内容,它是基于 Android 系统的设备用来安装应用的文件. 安装到设备后,每个 Android 应用都运行在自己的安全沙箱内: 1.Android 操作系统是一种多用户 Linux 系统,其中的每个应用都是一位不同的用户: 2.默认情况下,系统会为每个应

Android基础知识(6)—数据持久化之数据存储

阅读前,请浏览此处上方目录. Android基础知识(6)-数据持久化之数据存储 本章内容为个人笔记,参考书籍有:<疯狂的android>第3版.<第一行代码> 首先,我们要知道什么是数据持久化. 数据持久化就是指那些内存中的瞬时数据保存到存储设备中,保证即使手机在关机的情况下,这些数据不会丢失.保存在内存中的数据是处于瞬时状态,保存在存储设备中的数据是处于持久状态.持久化技术则是提供了一种机制可以让数据在瞬时状态和持久状态之间进行转换. Android系统主要提供了三种方式用于简

android基础知识13:AndroidManifest.xml文件解析

1.重要性 AndroidManifest.xml是Android应用程序中最重要的文件之一.它是Android程序的全局配置文件,是每个 android程序中必须的文件.它位于我们开发的应用程序的根目录下,描述了package中的全局数据,包括package中暴露的组件 (activities, services, 等等),以及他们各自的实现类,各种能被处理的数据和启动位置等重要信息. 因此,该文件提供了Android系统所需要的关于该应用程序的必要信息,即在该应用程序的任何代码运行之前系统所