Activity 生命周期

1、 Activity介绍

1) 概念:
Activity 是Android应用程序和用户交互的窗口;

2) 运行时的Activity特点:
i. 可见的;
ii. 能与用户进行交互的

2、 Activity的生命周期
1) 生命周期图解:

2) 提示:android 系统中的 Activity 是通过一个Activity 栈来进行管理的;遵循的是先进后出的原则;

3) Activity 的状态
a) Active/Running 状态:位于栈最顶端的 , 是处于运行状态的Activity 此时可见,能与用户进行交互的;
b) Paused 状态:Activity 失去了焦点,但是仍然可见;例如:透明或者Dialog样式的Activity; 仅仅可见,但是不能和用户进行交互;
c) Stopped 状态:当Activity被另一个Activity 完全覆盖、失去焦点,不可见;但仍然保存着所有的状态和成员信息;
d) Killed Activity 状态:被系统杀死回收或者没有被启动时处于Killed 状态

4) Activity 的主要生命周期
a) 完整生命周期:
说明:从调用 onCreate(); 方法到最终的调用onDestory();方法,Activity 会在onCreate() 方法进行所有“全局”状态设置,在onDestroy(); 方法中释放所有持有的资源;
b) 可见性生命周期:
说明:从 onStart() 到 onStop(); 这段过程称为可见性生命周期;
特点:用户可以在屏幕上看到Activity ,但并不一定是在前景,也不一定可以和用户交互;
c) 前景生命周期:
说明:cong onResume() 到 onPause() 方法称为前景生命周期;
特点:这段时间Activity 处于其他所有Activity 的前面,且与用户交互。

5) Activity 完整生命周期
a) OnCreate()  onStart()  onRestart()  onResume()  onFreeze() onPause()  onStop()  onDestroy();
b) onCreate():
说明: Activity 初次创建的时候调用这个方法,是应用程序的入口;
用途:可以初始化数据、设置用户界面等操作;
c) onStart();
说明:该方法在onCreate() 之后进行调用,或者在Activity从stop状态转为Active状态时被调用;
提示:该方法其后调用onRestart() 方法和 onResume() 方法;
d) onRestart();
说明:当Activity从停止状态从新启动时调用;
提示:其后调用的是 onResume() 方法;
e) onResume()
说明:当Activity要与用户进行交互的时候调用该方;
特点:此时的Activity 位于栈顶,可以和用户进行交互;
提示:如果其他的Activity在它的上方恢复显示,则调用onFreeze() 方法
f) onFreeze()
说明:当Activity暂停,其他的Activity恢复与用户交互的时候调用这个方法;
g) onPause()
说明:当系统要调用其他的Activity 时调用(其他Activity之前调用);
作用:一般用来提交数据的改变,停止动画,和其他占用CUP资源的东西。
提示:如果Activity重新回到前景,则调用onResume()方法;如果用于彻底不可见,则调用onStop() 方法;
h) onStop()
说明:当其他Activity 恢复并遮盖此Activity ,导致此Acitivity对用户不可见时调用;
提示:当Activity 重新回到前景与用户交互时调用onRestart()方法,如果Activity将退出则调用 onDestory() 方法;
i) onDestory()
说明:Activity 被销毁前调用的最后一个方法,当进程终止时会出现这种情况;提示:可以调用Activity提供的 finish()方法


3、 Intent 显式意图和隐式意图

1) Intent
a) 说明:四大组建之一,Intent 为各个组建中互相通讯的纽带
b) 作用:
1、 启动其他组件,例如启动Activity ,服务,绑定服务
2、 在广播中传递数据;
c) 主要分类:
Intent 的主要分类包括:隐式意图和显式意图

2) Intent 显式意图
a) 说明:显示意图通常主要启动本应用中的Activity之间的数据;
b) 用法:调用Intent.setComponent() 或 intent.setClass() 方法明确的指定了组件名;
c) 作用:显示意图明确指定了Intent 应该传递给哪个组建;

3) Intent 隐式意图
a) 说明:主要用于启动系统中某些特定的动作,比如打电话,或者是跨应用的Activity 的启动;
b) 用法:在配置文件中设置action 动作、类别(category) ,数据找到合适的组件处理意图;
c) 提示:隐式意图,要在mainfest.xml 文件合纵声明意图过滤器;
d) 例子:
<activity android:name=”.NewActivity”>
<intent-filter>
<action android:name=”hp.intent.aa”/>
<category android:name=”android.intent.category.Default”/>
</intent-filter>
</activity>

4) 隐式意图用法案例 之 拨打电话
a) 判断号码的有效性:PhoneNumberUtils.isGlobalPhoneNumber(“用于输入的号码”) -- 返回一个boolean 类型的值
b) 设置动作:intent.setClass(Intent.ACTION.CALL);
c) 携带数据(携带电话号码):intent.setData(Uri.parse(“tel:”+电话号码)); 注意:此处必须加 tel:
d) 设置打电话权限:
<uses-permission android:name=”android.permission.CALL_PHONE”/>


已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐
  • —软件人才免语言低担保 赴美带薪读研!—



更多相关文章

  1. Android中ImageButton自定义按钮的按下效果的代码实现方法,附网上
  2. 4412开发板Android和LinuxQT烧写方法
  3. 获取系统语言的方法
  4. Notification用法,注意API版本,API大于11的setLatestEventInfo()方
  5. Android 进程生命周期(Process Lifecycle)
  6. Android Service生命周期
  7. Android 中文设置成粗体的方法

随机推荐

  1. Delphi 的链式代码
  2. Delphi 正则表达式语法(10): 选项
  3. 使用 IntraWeb (29) - 基本控件之 TIWAut
  4. 使用 IntraWeb (21) - 基本控件之 TIWTab
  5. Delphi XE2 之 FireMonkey 入门(34) - 控
  6. Delphi 正则表达式之TPerlRegEx 类的属性
  7. 使用 IntraWeb (31) - IntraWeb 的 Xml
  8. C++(template模板 && 函数模板)
  9. C++(template模板 && 类模板 碰到继承)
  10. 使用 IntraWeb (26) - 基本控件之 TIWMen