Android(1)--Application和Activity

一.Android应用程序类型:

(1)前台应用程序--需要考虑Activity的生命周期

只能运行在前台的应用,当他不可见时就会被挂起,例如:游戏应用;

(2)后台应用程序--Service 和 BroadcastReceiver是后台应用程序的驱动者

交互非常有限的一个应用,除非在配置期间,的其他生命期间都是隐藏的,例如:闹钟;

(3)间歇性应用程序--Activity、Service 和 BroadcastReceiver、以及Notification联合使用

当应用可见时,更新UI;当应用不可见时,则发通知(或其他方式)来告知最新动态给用户;

(4)Widget 和 Live Wallpaper:

可以创建一些交互式的可见组件,位于用户主屏幕,Widget主要用于显示动态信息,例如:天气、电池电量、时间日期等;

二.Android应用程序的组成部分

介绍一下组件:

1.Activity--实现UI,使用View或Fragment来布局和显示信息,以及响应用户动作;

2.Service--不可见,可以更新数据源和Activity,可以触发通和广播Intent;

3.ContentProvider--一个可共享的持久数据存储器。他是应用程序之间共享数据的首选,可以配置自身应用的CP来提供给其他应用使用,也可以使用其他应用提供的CP,Android本地提供CP的有很多,例如:联系人信息,媒体库信息等;

4.Intent--一个强大的应用程序间的消息传递框架。也可启动/停止Activity、Service。也可以广播消息;

5.BroadcastReceiver--Intent监听器。可以自动的启动应用程序来响应某个收到的Intent,多用于事件驱动的应用程序;

6.Widget--是BroadcastReceiver的特殊变体;

7.Notification

三.Android 的Activity

  1. Activity+布局+视图+Fragment = UI;
  2. Activity栈

(1)每个Activity的状态由其在Activity栈中的位置决定;

(2)Android内存管理器再决定终止哪个应用程序来释放资源时,也是通过Activity栈来决定Activity的优先级的,进而决定终止哪个应用程序;

(3)Activity栈是当前所有正在运行的Activity后进先出的集合;

3.Activity状态

(1)活动状态--位于栈顶、可见、具有焦点、可以接受用户输入;

Android会不惜一切代价的来保持他的活动状态,必要时销毁下部的Activity以释放资源供其使用;

当另外一个Activity活动时,他将处于暂停状态;

(2)暂停状态--一般情况下可见、但是没有焦点、不能接收用户的输入事件;

在极端的情况下才会被系统收销毁来释放资源;

当他完全不可见时,则处于停止状态;

(3)停止状态--可不见;

仍处于内存中,并保留状态信息,但是当系统需要释放内存时,他们是首选对象;

当Activity处于暂停/停止状态时,保存UI和数据信息非常重要;

(4)终止状态--退出或关闭的Activity、从栈中移除;

4.Activity生存期与状态的监控

时间: 2024-07-30 17:24:24

Android(1)--Application和Activity的相关文章

朝花夕拾-android 自定义application 管理activity的生命周期

为了安全退出多个已创建的activity? 可以自定义application:myapplication. 增加一个list成员保存,一些关键的已创建的activity实例: 1 private List<Activity> activityList = new LinkedList<Activity>(); 2 3 // 保存 所有activity的this 4 public void addActivity(Activity activity) { 5 activityList

android 获取application和activity下meta-data中的值

meta-data在AndroidManifest中是以键值对的形式存在的,可以将meta-data放在application根节点下,也可以放在某个activity节点下.因为存放的位置不同,因此获取value时也要使用对应的方法,下面是我写的一个小测试. 代码如下: 先是在AndroidManifest中的application和mainActivity下添加两个meta-data属性. <application android:allowBackup="true" andr

Android 中Application向Activity 传递数值

比如极光注册时获取用户的唯一标示ID需要在登录时进行传递,实现消息的指定用户推送功能 1 public String id; 2 3 public String getId() { 4 return id; 5 } 6 7 public void setId(String id) { 8 this.id = id; 9 } 1 //初始化极光推送 2 JPushInterface.setDebugMode(true); 3 JPushInterface.init(this); 4 5 id =

我的Android 4 学习系列之创建应用程序和Activity:Manifest、Application、Activity

目录 介绍Android应用程序组件,以及使用这些组件构建的各种Android应用程序 Android应用程序的生命周期 如何创建应用程序Manifest 如何使用外部资源提供对位置.语言和硬件配置的支持 如何实现和使用自己的Application类 如何创建新的Activity 理解Activity的状态转换和生命周期 Android应用程序的组成部分 Android应用程序是由松散耦合的组件构成的,并使用应用程序Manifest绑定到一起. Manifest描述了每一个组件以及他们之间的交互

Android application 和 activity 标签详解

extends:http://blog.csdn.net/self_study/article/details/54020909 Application 标签 android:allowTaskReparenting Android:allowTaskReparenting=["true" | "false"] 表明了这个应用在 reset task 时,它的所有 activity 是否可以从打开它们的 task 栈中迁移到它们声明的 taskAffinity 亲和

android 到底是什么决定了app的名称 application label activity label

原文地址:http://blog.csdn.net/lamp_zy/article/details/7878979 原来博主的博客的名字仅仅是application label表示菜比的我没有搜到,然后复制过来加入几个keyword吧.希望能够帮到很多其它人 activity和application里都能够设置android:label标签.activity的优先级高于application,也就是说两者都设置这个标签的话.activity的值覆盖application application里

android 究竟是什么决定了app的名称 application label activity label

原文地址:http://blog.csdn.net/lamp_zy/article/details/7878979 原来博主的博客的名字只是application label表示菜比的我没有搜到,然后复制过来添加几个关键字吧.希望可以帮到更多人 activity和application里都可以设置android:label标签,activity的优先级高于application,也就是说两者都设置这个标签的话,activity的值覆盖application application里设置了此标签,

Android 向Application对象添加Activity监听

可以建立对象把Application.ActivityLifecycleCallbacks接口中的函数实现,并利用public void registerActivityLifecycleCallbacks (Application.ActivityLifecycleCallbacks callback)函数向application添加代理对象. 比如以下代码,在本程序的全部activity的resume时都会调用. @Override public void onActivityResumed

【Android】多个Activity之间利用bundle传递数值

安卓中的Activity相当于vb,mfc中的窗体,在多个Activity之间传递数据是一个相当核心的功能.下面举个例子来说明这个问题. 一.基本目标 用户在两个输入框中输入用户名.密码之后,跳到另一个Activity当中,显示其输入的内容, 然后这两个Activity能够轻松跳转. 二.制作过程 1.首先MainActivity的登录界面是沿用了<[Android]利用表格布局,Android中xml文件与java的交互制作登录界面>(点击打开链接)的布局,其布局文件activity_mai

android系统启动框架、Activity界面显示过程详解

一.Android系统框架 android的系统架构和其操作系统一样,采用了分层的架构.从架构图看,android分为四个层,从高层到低层分别是应用程序层.应用程序框架层.系统运行库层和linux核心层.盗图如下: 具体每层的功能介绍如下: (1) 应用程序层 该层提供一些核心应用程序包,例如电子邮件.短信.日历.地图.浏览器和联系人管理等.同时,开发者可以利用Java语言设计和编写属于自己的应用程序,而这些程序与那些核心应用程序彼此平等.友好共处. (2)应用程序框架层 该层是Android应