ZNDS智能电视网 推荐当贝市场

TV应用下载 / 资源分享区

软件下载 | 游戏 | 讨论 | 电视计算器

综合交流 / 评测 / 活动区

交流区 | 测硬件 | 网站活动 | Z币中心

新手入门 / 进阶 / 社区互助

新手 | 你问我答 | 免费刷机救砖 | ROM固件

查看: 10441|回复: 0
上一主题 下一主题
[教程]

第四讲:Activity入门指南

[复制链接]
跳转到指定楼层
楼主
发表于 2013-8-28 16:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
668
本节内容   
理解Activity   
Activity的生命周期   
实例:观察翻转屏幕导致的Activity状态变化
点此下载:
  
从这里可以看到Activity是Context类的子类,大家对此先有个印象。
二、理解Activity的生命周期
手机最重要也是最基础的功能是打电话,也就意味着电话来的时候可能随时要把现在的程序暂停,如果电量不足的时候也可能随时要把现有程序关闭;因此Android程序和电脑上的程序有所不同,具体到Activity,Activity的生命周期不是自身控制的,而是由Android系统控制的。
在android中Activity有四种基本状态:   
1、Running   
位于屏幕最前端时,此时处于可见状态,和用户可交互的状态。   
2、Paused   
当Acitivy被另一个透明的或者非全屏的Activity覆盖时的状态叫Paused状态,虽然可见但不可交互。   
3、Stop   
当Activity被另外一个Activity覆盖、界面不可见时处于Stop状态。   
4、Killed   
Activity被系统杀死或者跟本没启动时就是Killed状态。
我们下面看一下Activity的生命周期:
  
下面是上图的简单翻译版本:
  
Activity栈:   
Android通过Activity栈的方式来管理Activity。
     
正在运行的Activity 处在在栈的最顶端,它是运行状态的;
当有新Activity进入屏幕最上端时,原来的Activity就会被压入第二层,如果他的屏幕没有被完全遮盖,那么他处于Pause状态,如果他被遮盖那么他处于Stop状态。
当然不管你出于任何一层,都可能在系统觉得资源不足时被强行关闭,当然关闭时在栈底的程序最先被关闭。
譬如:当你在程序中调用 Activity.finish()方法时,结果和用户按下 BACK 键一样:他告诉 Activity Manager该Activity实例可以被“回收”。随后 Activity Manager 激活处于栈第二层的 Activity 并重新入栈,把原 Activity 压入到栈的第二层,从 Running 状态转到 Paused 状态。
三.实例:观察翻转屏幕导致的Activity状态变化
Activity类中定义了和生命周期相关的一些方法,这些方法会在状态改变时被调用,譬如创建时调用的方法onCreate()。因此我们可以写一个程序,在程序的每个一个方法中写注释,然后看看运行时注释的打印顺序来跟踪Activity的状态变化。
   
下面是程序代码:
   
   
  1. package android.basic.lesson4;import android.app.Activity;   
    import android.os.Bundle;   
    import android.util.Log;public class MainActivityLife extends Activity {   
    String tag =”[MainActivityLife]“;   
    /** Called when the activity is first created. */   
    @Override   
    public void onCreate(Bundle savedInstanceState) {   
    super.onCreate(savedInstanceState);   
    setContentView(R.layout.main);   
    Log.i(tag, “onCreate”);   
    }@Override   
    public void onStart(){   
    super.onStart();   
    Log.i(tag, “onStart”);   
    }@Override   
    public void onPause(){   
    super.onPause();   
    Log.i(tag, “onPause”);   
    }@Override   
    public void onResume(){   
    super.onResume();   
    Log.i(tag, “onResume”);   
    }@Override   
    public void onStop(){   
    super.onStop();   
    Log.i(tag, “onStop”);   
    }@Override   
    public void onDestroy(){   
    super.onDestroy();   
    Log.i(tag, “onDestroy”);   
    }   
    }
复制代码
  
   
然后调出LogCat工具,来观察程序的运行细节。通过LogCat的过滤器我们可以看到程序启动、屏幕翻转、按后退键程序退出的过程,这有助于我们验证刚才所学的知识。
  
我们可以看到屏幕翻转时,Android系统把ActivityLife这个Activity先杀死(具体顺序是先暂停、后关闭再销毁),然后再启动(具体顺序是先创建,后启动再恢复)。通过这个例子我们也清楚的看到了,是Android系统而不是程序员在控制Activity的生命周期。
本节课就到这里。

上一篇:第五讲:用户界面 View(一)
下一篇:第三讲:Android模拟器的使用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|新帖|标签|软件|Sitemap|ZNDS智能电视网 ( 苏ICP备2023012627号 )

网络信息服务信用承诺书 | 增值电信业务经营许可证:苏B2-20221768 丨 苏公网安备 32011402011373号

GMT+8, 2024-5-20 06:32 , Processed in 0.059787 second(s), 17 queries , Redis On.

Powered by Discuz!

监督举报:report#znds.com (请将#替换为@)

© 2007-2024 ZNDS.Com

快速回复 返回顶部 返回列表