Android Activity原理以及其子类描述,androidactivity

简介

Activity是Android应用程序组件,实现一个用户交互窗口,我们可以实现布局填充屏幕,也可以实现悬浮窗口。一个app由很多个Actvitiy组合而成,它们之间用intent-filter区别主次关系。
下面将简单介绍Activity以及其子类和其它界面。

详情
1、Activity

2、ListActivity

3、ActivityGroup

4、TabActivity

5、PreferenceActivity

6、FragmentActivity

7、ListFragment

8、NativeActivity

9、ExpandableListActivity

10、LauncherActivity

11、AliasActivity

12、PreferenceFragment

13、ActivityCompat

14、ActivityUnitTestCase

Activity 管理

目前涉及到Activity管理的类就两个:1、LocalActivityManager 2、ActivityManager。它们分别做了什么呢?

生命周期

这里有三个比较关键的生命周期。

从最初调用onCreate(Bundle)到最终调用onDestroy()称为完整生命周期。Activity会在onCreate()进行所有“全局”状态的设置,在onDestroy()中释放所有持有的资源。举个例子,如果它有一个从网络上下载数据的后台线程,那他可能就会在onCreate()中创建这个线程并在onDestroy()中停止这个线程。

从activity调用onStart()开始,到调用对应的onStop()为止称为可见生命周期。在这段时间内用户可以在屏幕上看到这个activity,尽管并不一定是在前景也不一定可以和用户交互。在这两个方法之间你可以维护那些activity在用户显示时所需的资源。举个例子来说,你可以在onStart()中注册一个IntentReceiver来监控那些可以对你的UI产生影响的环境改变,当你的UI不继续在用户面前显示时你可以在onStop()中注销这个IntentReceiver。每当activity在用户面前显示或者隐藏时都会调用相应的方法,所以onStart()和onStop()方法在整个生命周期中可以多次被调用。

从activity调用onResume()开始,到调用对应的onPause()为止称为前景生命周期,这段时间activity处于其他所有activity的前面,且与用户交互。一个activity可以经常在resumed和paused状态之间转换——例如手机进入休眠时、activity的结果返回时、新的intent到来时——所以这两个方法中的代码应该非常的简短。

下面的Activity方法定义了activity完整的生命周期。他们全都是hook方法,你可以重载这些方法从而使activity在状态改变时执行你所期望的操作。所有activity都应该实现自己的onCreate(Bundle)方法来进行初始化设置;大部分还应该实现onPause()方法提交数据的修改并且准备终止与用户的交互。尽管我们计划在系统中添加更多的工具来管理应用,现在大多activity仍需要实现onFreeze()并且在onCreate(Bundle)中执行对应的状态恢复。其他的方法可以在需要时进行实现,当实现这些方法的时候需要注意的是一定要调用父类中的对应方法。

android的activity类与intent的问题

每个Activity都需要一个类来继承,
Activity你可以理解成一个应用场景,如果你想像成web网页,那么它就是一个页面。
多个activity之间可以跳转,就像网页之间相互跳转一样。你只需要设置Intent,不需要GetIntent
GetIntent是系统做的事情,系统收到你的Intent意图,会自动生成你想要跳到的那个页面的类对象实例,并自动回调该类的Oncreate方法,你只要在该Oncreate方法里写下你那个页面的UI初始化工作就可以了。

跳转可以像你说的那样使用Intent机制来实现:
Intent intent = new Intent();
intent.setClass(this, Page.class);
this.startActivity(intent);
这样就可以了。关键是setClass方法, 参数一是当前这个Activity也就是当前页面的类,参数二是另一个页面的class

为什么是class而不是object对象呢? 因为Android希望你不要去实例new一个页面对象,而是告诉系统你要跳转到哪个页,由系统帮你new一个该页面的对象。然后系统帮你跳过去,这个过程你不要运控制就好了。

继续:
当this.startActivity方法执行后,页面就会从当前页跳转到你指定的下一页,这我的例子中,那个页叫Page ,它也是extends Activity的一个类,

有一个前提,所有的Activity(包括这个Page)都必须实例Activity的抽像方法OnCreate();因为Activity是抽象类,而onCreate又是抽像方法,所以你必须实现,填完整这个方法,在里面写点东西,一般都是生成一些,按钮,菜单,图片,文字等进行界面的初始化。

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
instance=this;
requestWindowFeature(Window.FEATURE_NO_TITLE);
this.setContentView(R.layout.main);
//TODO 
//your code
}

同样还有Onstop,onResume等方法可以实现,但他们不是抽像方法,可以选择性的实现。不强制。

至于在xml中的配置是这样的,你需要填所有的activity页面类的路径
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Mstar"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="an......余下全文>>

from:http://www.android100.org/html/201508/19/174311.html

【转】Android Activity原理以及其子类描述,androidactivity的更多相关文章

  1. Android Activity的生命周期简单总结

    Android Activity的生命周期简单总结 这里的内容参考官方的文档,这篇文章的目的不是去总结Activity是如何启动,如何创造,以及暂停和销毁的,而是从实际开发中分析在Activity各个 ...

  2. Android Activity使用拾遗

    一.onWindowFocusChanged 有时我们需要测量一个Activity多长时间才能显示出来,那么在代码中打点计时的时机选在哪儿呢?在onCreate和onResume执行完成后,Activ ...

  3. NFC(6)NFC编程的几个重要类,NFC硬件启动android应用原理

    用于NFC编程的几个重要类 Tag NFC 标签 NfcAdapter Nfc 的适配类 NdefMessage 描述NDEF格式的信息 NdefRecord 描述NDEF信息的一个信息段,类似tab ...

  4. 【转】Android Activity和Intent机制学习笔记----不错

    原文网址:http://www.cnblogs.com/feisky/archive/2010/01/16/1649081.html Activity Android中,Activity是所有程序的根 ...

  5. Android Activity和Intent机制学习笔记

    转自 http://www.cnblogs.com/feisky: Activity Android中,Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity具 ...

  6. Android Activity启动流程源码全解析(1)

    前言 Activity是Android四大组件的老大,我们对它的生命周期方法调用顺序都烂熟于心了,可是这些生命周期方法到底是怎么调用的呢?在启动它的时候会用到startActivty这个方法,但是这个 ...

  7. Android Activity启动流程源码全解析(2)

    接上之前的分析 ++Android Activity启动流程源码全解析(1)++ 1.正在运行的Activity调用startPausingLocked 一个一个分析,先来看看startPausing ...

  8. Android Activity标签属性

    Android Activity标签属性 Activity 是 Android 系统四大应用组件之一,用户可与 Activity 提供的屏幕进行交互,以执行拨打电话.拍摄照片.发送电子邮件等操作开发者 ...

  9. 转 Android Activity之间动画完整版详解

    标签:Android Activity动画详解 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://mzh3344258.blog.5 ...

随机推荐

  1. nodejs基础知识查缺补漏

    1. 单线程.异步I/O.对比php nodejs是单线程的,但是是异步I/O,对于高并发时,它也能够快速的处理请求,100万个请求也可以承担,但是缺点是非常的耗内存,但是我们可以加大内存, 所以能用 ...

  2. 手指静脉细化算法过程原理解析 以及python实现细化算法

    原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/8672489.html 文中的一些图片以及思想很多都是参考https://www.cnblogs ...

  3. Linux定时任务与开机自启动脚本(cron与crontab)

    开机自启动脚本 网上常见的脚本开机自启方法是: 假设要自启的脚本位于 /home/user/test.sh 给脚本可执行的权限 sudo chmod +x /home/user/test.sh 将脚本 ...

  4. AI从入门到放弃:CNN的导火索,用MLP做图像分类识别?

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 作者:郑善友 腾讯MIG后台开发工程师 导语:在没有CNN以及更先进的神经网络的时代,朴素的想法是用多层感知机(MLP)做图片分类的识别:但 ...

  5. 电影:换肤(Replace)

    一个恐怖题材的电影,欧美的恐怖电影给我的感觉是一点也不恐怖,只是血腥,非常血腥,看这部电影的时候我还在吃中午饭........ 开头没看懂,应该都是女主的幻觉吧,女主本来是一个年近六十多岁的老太太,然 ...

  6. 迟到的UED(转发)

    2013UCAN用户体验设计论坛–精彩视频赏析 - 交互设计 博文 视觉设计 | TaoBaoUEDhttp://ued.taobao.org/blog/2013/09/2013ucan/

  7. js之正则表达式基础

    字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在.比如判断一个字符串是否是合法的Email地址,虽然可以编程提取@前后的子串,再分别判断是否是单词和域名,但这样做不但麻烦, ...

  8. PHP正则表达式实例汇总

    $str = preg_replace("/(<a.*?>)(.*?)(<\/a>)/", '\1<span class="link&quo ...

  9. Web前端面试指导(七):入职后的建议

    7.2 关于合同 签合同的时候,看公司要求,有些是3年,有些是5年,不要怕,签了就是了,真到想走的时候,提前说一声,随时可以走,不存在什么违约赔偿. 注意:你的合同和薪资都是属于保密的,不能让公司其他 ...

  10. 学习 JavaScript 树

    学习 JavaScript 树 树(Tree) 在计算机科学中,数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象(数据元素)以及它们之间的操作和运算等的学科. 它包含三方面的内容: 数据的 ...