Android基础教程--Activity组成原理及应用
android中activity的作用
android中activity的作用
Android中的Activity是一种Android应用程序组件,它是应
用程序用户界面的基本单元之一,用于展示用户界面,并处理与用户交互的事件。
Activity可以执行各种任务,包括呈现一
个布局、启动另一个Activity、接收用户输入、显示对话框、
与数据库等数据存储进行交互等。
以下是Activity的主要作用:
1. 展示用户界面:Activity是用来呈现用户界面的,它可以包
括布局、按钮、文本框、图像和其他UI组件。
2. 处理用户输入:Activity可以监听用户的交互操作,比如点
击一个按钮或文本框输入等。
3. 启动其他Activity:应用程序通常涉及多个Activity,一个Activity可以启动其他Activity,以便用户可以浏览应用程序
的不同部分。
4. 保存和恢复状态:当设备配置更改或系统内存不足时,Activity可以保存其状态并在需要时进行恢复。
5. 数据交互: Activity可以与其他应用程序进行数据交互,例
如通过Intent与其他Activity进行通信,与数据库进行交互等。
activity的介绍与使用
activity的介绍与使用Activity是Android应用程序中的一个关键组件,它提供了用户与应用程序交互的界面。
通过Activity,用户可以执行各种操作,如查看信息、输入数据、浏览网页等。
在Android应用程序开发中,Activity的使用非常广泛,可以说是Android应用程序的基础。
让我们来了解一下Activity的基本概念和特点。
Activity是Android应用程序的核心组件之一,它是一个单独的屏幕,用于展示用户界面。
每个Activity都有自己的生命周期,包括创建、启动、暂停、恢复、停止和销毁等阶段。
在每个阶段,Activity都可以执行一些特定的操作,如初始化界面、保存数据、响应用户事件等。
在Android应用程序中,一个应用程序通常由多个Activity组成,每个Activity负责展示不同的界面。
通过Activity之间的切换,用户可以在不同的界面之间进行导航。
例如,一个应用程序可能有一个主界面Activity,用于展示应用程序的主要功能;另外,还有一些子界面Activity,用于展示一些次要功能或详细信息。
为了使用Activity,我们需要在AndroidManifest.xml文件中进行配置。
在该文件中,我们需要声明每个Activity的名称、入口点、主题等信息。
通过配置文件,系统可以识别并启动相应的Activity。
在开发过程中,我们可以通过继承Activity类来创建自定义的Activity。
通过重写Activity类中的方法,我们可以实现自己的业务逻辑。
例如,我们可以重写onCreate()方法,在该方法中初始化界面和数据;我们还可以重写onPause()方法,在该方法中保存数据和释放资源。
除了基本的生命周期方法外,Activity还提供了一些其他的方法,用于处理用户事件、与其他组件进行交互等。
例如,我们可以通过setOnClickListener()方法为按钮设置点击事件监听器;我们还可以通过startActivity()方法启动其他Activity。
Android基础-Activity
Activity之间如何传递数据
Activity之间通过Intent传递简单的数据
发送数据:
Intent intent = new Intent(this,SecondActivity.class);
每个应用都拥有一个main Activity
在manifest文件中声明 Main Activity是应用启动时第一个显示的界面
Activity栈
Android使用栈来管理各个Activity 当一个Activity在最前端时,它位于栈顶
当另外一个Activity启动时,原来的Activity被 压到栈里,而新的Activity位于栈顶
当一个Activity处于Paused或Stopped状态时, 系统可以调用finishi()或者直接杀掉它以释放 内存
Activity的生命周期
Activity的七个生命周期回调函数:
onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy(), onRestart() 在onCreate()中设置全局状态或处理其他
在这期间,用户可以看到这个Activity的界面
当启动一个新的Activity,而当前的Activity不再 可见时,onStop被调用
在这个期间,应该持续维护需要被显示的资源
ex:你可以在onStart中启动一个广播来监听对 你显示有影响的事件,并在onStop中注销它
详解 Android 的 Activity 组件
详解 Android 的 Activity 组件本文详细介绍了 Android 应用编程中 Activity 的生命周期、通信方式和 Intent Filter 等内容,并提供了一些日常开发中经常用到的关于 Activity 的技巧和方法。
通过本文,你可以进一步了接 Android 中 Activity 的运作方式。
Activity 的生命周期在 android 中,Activity 的生命周期交给系统统一管理。
android 中的所有的 Activity 都是平等的。
Activity 的状态及状态间的转换在 android 中,Activity 拥有四种基本状态:1. Active/Runing一个新 Activity 启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并可和用户交互的激活状态。
2. Paused当 Activity 被另一个透明或者 Dialog 样式的 Activity 覆盖时的状态。
此时它依然与窗口管理器保持连接,系统继续维护其内部状态,所以它仍然可见,但它已经失去了焦点故不可与用户交互。
3. Stoped当 Activity 被另外一个 Activity 覆盖、失去焦点并不可见时处于Stoped状态。
4. Killed Activity 被系统杀死回收或者没有被启动时处于Killed状态。
当一个 Activity 实例被创建、销毁或者启动另外一个 Activity 时,它在这四种状态之间进行转换,这种转换的发生依赖于用户程序的动作。
下图说明了 Activity 在不同状态间转换的时机和条件:图 1. Activity 的状态转换如上所示,Android 程序员可以决定一个 Activity 的“生”,但不能决定它的“死”,也就时说程序员可以启动一个 Activity,但是却不能手动的“结束”一个 Activity。
当你调用Activity.finish()方法时,结果和用户按下 BACK 键一样:告诉 Activity Manager 该Activity 实例完成了相应的工作,可以被“回收”。
activity的机制
activity的机制Activity是Android开发中的一个重要组件,它是应用程序中的一个可视化窗口,用户可以在该窗口中进行交互,包括输入、输出、浏览和管理等操作。
Activity的机制是如何工作的呢?Activity是Android应用程序中最基本和常见的UI组件,它包括了一系列的生命周期方法,在不同的生命周期里,开发者可以执行不同的操作,如初始化界面、读取数据、保存状态、处理用户输入等。
Activity的生命周期涉及到以下几个阶段:1. onCreate():Activity被创建时,该方法首先被调用。
在该方法中,通常完成UI组件的创建、布局资源的加载、数据的初始化等工作。
2. onStart():在Activity被创建后,该方法被调用,表示该Activity正在启动并马上变为可见状态。
在该方法中,通常进行UI的更新、注册广播接收器等工作。
3. onResume():当Activity进入前台并处于运行状态时,该方法被调用。
在该方法中,通常需要开启定位服务、传感器等硬件模块,以及启动线程、动画等操作。
5. onStop():当Activity不再可见时,该方法被调用。
在该方法中,释放部分资源、停止服务等操作。
此外,Activity还有一些其他的机制,如启动Activity、保存状态、返回结果等操作。
具体表现如下:1. 启动Activity:Activity可以通过Intent来启动其他Activity,Intent包含了要启动的Activity的信息,例如要启动的Activity类、要传递的数据等。
通过startActivity()方法启动Activity。
2. 保存状态:Activity每次启动和销毁都会丢失原有的状态信息,因此,需要在Activity被销毁时将数据保存,以便在下次启动时恢复。
一般可以使用onSaveInstanceState()方法将Activity的重要信息保存到一个Bundle对象中。
android activitytaskmanagerservice 原理
android activitytaskmanagerservice 原理摘要:1.Android Activity简介2.TaskManagerService的作用3.ActivityTaskManager的架构4.Task的调度与管理5.常见问题与解决方案正文:一、Android Activity简介在Android系统中,Activity作为应用程序的界面展示模块,负责响应用户的交互操作。
Activity的生命周期、任务栈管理等机制,保证了应用程序在多任务切换时的稳定性和流畅性。
二、TaskManagerService的作用TaskManagerService(TaskManager),顾名思义,是Android系统中负责任务管理的服务。
它跟踪和调度应用程序中的各种Task,确保Task在合适的时间被执行。
TaskManagerService通过ActivityTaskManager来实现对Task的调度和管理。
三、ActivityTaskManager的架构ActivityTaskManager是Android系统中Task管理的核心类,它位于android.app包中。
ActivityTaskManager的主要职责是维护一个Task列表,这些Task代表了应用程序中当前运行的Activity。
ATM(ActivityTaskManager)通过与TaskStackManager(TSM)协作,实现对Task的切换和管理。
四、Task的调度与管理1.任务创建:当一个新的Task被创建时,ActivityTaskManager会将其添加到Task列表中。
2.任务切换:当用户切换到另一个Task时,ActivityTaskManager会更新Task列表,将新Task添加到列表头部,并将原Task从列表中移除。
3.任务终止:当一个Task被终止时,ActivityTaskManager会将其从Task列表中移除。
Android 活动(Activity)
Android 活动(Activity) | 菜鸟教程
Android 活动(Activity)
活动代表了一个具有用户界面的单一屏幕,如 Java 的窗口或者帧。
Android 的活动是 ContextThemeWrapper 类的子类。
如果你曾经用 C,C++ 或者 Java 语言编程,你应该知道这些程序从 main() 函数开始。
很类似的,Android 系统初始化它的程序是通过活动中的 onCreate() 回调的调用开始的。
存在有一序列的回调方法来启动一个活动,同时有一序列的方法来关闭活动,如下面的活动声明周期图所示:
Activity 类定义了下面的回调。
你可以不用实现所有的回调方法。
但了解其中的每一个非常的重要,实现这些可以保证你的应用行为如用户所期望的那样。
回调描述
onCreate()这是第一个回调,在活动第一次创建时调用
onStart()这个回调在活动为用户可见时被调用
目中的活动文件,并从工具栏点击运行图标。
模拟器上的红色按钮,它将在
模拟器上的菜单按钮,它将在
模拟器上的返回按钮,它将在。
android activity构造方法
android activity构造方法Android Activity 构造方法Android Activity 是 Android 开发中的一个重要组件,它是用户与应用程序进行交互的窗口。
在Android 开发中,Activity 的构造方法是一个非常重要的部分,它用于初始化Activity 实例并设置相关属性。
本文将深入探讨Android Activity 构造方法的使用和注意事项。
一、构造方法的作用和基本用法Activity 的构造方法是用来创建 Activity 实例的。
在 Android 中,当我们启动一个新的Activity 时,系统会调用其构造方法来创建该Activity 的实例。
构造方法通常用于初始化Activity 的状态和设置一些必要的属性。
在构造方法中,我们可以进行一些初始化操作,如设置布局、获取 Intent 传递的数据等。
在Android 中,Activity 的构造方法是由系统自动调用的,我们无需手动调用。
在 Activity 的生命周期中,构造方法是在 onCreate() 方法之前被调用的。
二、构造方法的参数Activity 的构造方法有多个重载形式,可以接受不同类型的参数。
其中,最常用的构造方法是接受一个Bundle 类型参数的构造方法。
Bundle 是一个用于存储数据的容器,可以用来传递数据给新创建的Activity。
除了Bundle 参数,还有一些其他的构造方法可以接受不同类型的参数,如 Context、Intent 等。
这些参数用于初始化 Activity 实例时提供必要的上下文信息。
根据具体的需求,我们可以选择合适的构造方法来创建 Activity 实例。
三、构造方法的调用时机Activity 的构造方法是在系统创建Activity 实例时被调用的。
当我们启动一个新的Activity 时,系统会根据Manifest 文件中的配置信息来创建该 Activity 的实例。
activity方法
activity方法Activity方法是Android开发中的一个重要概念,它负责管理应用程序的用户界面和用户交互。
在本文中,我们将深入探讨Activity 方法的使用以及它在应用程序开发中的重要性。
我们需要了解Activity方法的基本概念。
Activity是Android应用程序的一个组成部分,它代表了一个屏幕上的用户界面。
每个Activity都有自己的生命周期,包括创建、启动、暂停、恢复和销毁等阶段。
在开发过程中,我们可以通过重写Activity类中的方法来控制这些阶段的行为。
其中,最重要的方法之一是onCreate()方法。
这个方法在Activity 被创建时调用,并且我们可以在这个方法中进行一些初始化的操作,比如设置布局、绑定数据等。
同时,我们还可以在onCreate()方法中获取Intent传递过来的数据,以及处理一些其他的逻辑。
接下来,我们要了解的是onStart()和onResume()方法。
这两个方法分别在Activity即将可见和已经可见时被调用。
在这两个方法中,我们可以进行一些界面的初始化工作,比如加载数据、注册监听器等。
同时,我们还可以在onResume()方法中处理一些与用户交互相关的逻辑,比如请求权限、启动动画等。
除了上述方法,我们还需要了解onPause()和onStop()方法。
这两个方法分别在Activity失去焦点和完全不可见时被调用。
在这两个方法中,我们可以进行一些界面的清理工作,比如取消注册监听器、保存数据等。
同时,在onStop()方法中,我们还可以处理一些与持久化相关的逻辑,比如保存用户设置、关闭数据库等。
我们要了解的是onDestroy()方法。
这个方法在Activity被销毁时被调用,我们可以在这个方法中进行一些资源的释放工作,比如关闭网络连接、释放内存等。
同时,在onDestroy()方法中,我们还可以进行一些与应用程序退出相关的逻辑,比如保存用户数据、关闭服务等。
android应用的原理
Android应用的原理1. 概述Android应用是基于Android操作系统开发的应用程序。
它们运行在Android设备上,如智能手机、平板电脑等。
本文将介绍Android应用的原理,包括其基本组件、工作原理以及应用开发的主要步骤。
2. Android应用的基本组件Android应用由一系列基本组件组成,这些组件相互协作,实现应用的功能。
以下是Android应用的基本组件列表:•Activity(活动):用户界面的一个单独屏幕,用户与之交互。
一个应用通常由多个Activity组成,可以通过Activity之间的切换来实现不同的功能。
•Service(服务):在后台执行长时间运行的任务,与用户界面无关。
•Broadcast Receiver(广播接收者):监听系统广播消息,并执行相应的操作。
•Content Provider(内容提供者):用于数据的共享和访问控制,可以将数据存储在Android系统或其他应用程序中。
•Fragment(片段):可以嵌入到Activity中,实现界面的模块化。
3. Android应用的工作原理Android应用经历以下几个阶段,从启动到运行:1.用户点击应用图标或从其他应用程序调用应用时,Android系统会启动应用的启动器Activity。
2.启动器Activity会创建一个新的进程,并加载应用的主Activity。
3.主Activity会创建应用的用户界面,并显示给用户。
4.用户与界面进行交互,可以触发Activity之间的切换或调用其他组件。
5.当应用需要运行后台任务时,它可以启动一个Service。
Service在后台运行,不会干扰用户界面。
6.应用可以注册Broadcast Receiver来接收系统广播消息,在接收到消息时执行相应的操作。
7.如果应用需要访问其他应用或系统的数据,它可以使用ContentProvider提供的接口来实现数据的共享和访问控制。
Android应用程序开发之基础概念Activity
Android应用程序开发之基础概念Activity之思考1Activity代表一个可视化的用户接口(An activity presents a visual user interface for one focused endeavor the user can undertake.)。
比如,一个Activity可以代表一组用户可以选择的菜单按钮,或者显示带有标题(caption)的图片(graphics)。
一个文本消息应用可以有一个Activity,用来展示发送消息的聊天列表(a list of contacts),另一个Activity用来写该聊天(the choosen contacts)的消息,还有一个Activity用来显示(review)消息或更改设置。
尽管他们一起工作形成了友好的用户接口,但每一个Activity都是独立的。
每一个都作为基类Activity的一个子类实现。
一个应用可以由一个Activity组成(比如刚才提及的文本消息应用),也可能由多个组成。
每个Activity是什么样子,应该有多少个Activity等当然是取决于该应用和它的设计。
典型地,有一个Activity应该作为第一个提及,它会在应用加载的时候,首先呈现在用户面前。
通过当前Activity打开(start)(驱动)下一个来实现从一个Activity移动到另一个Activity.每一个Activity都被给定了一个默认的窗口(window)。
典型地,窗口充满屏幕,但是,也可以比屏幕小,或者浮在其他窗口的上面(the top of other window)。
窗体中的可视化内容,由一系列的视图(view)------对象提供,这些视图-----对象来源于基类view.每个视图控制着窗体中一个实际的长方形区域。
视图体系通过setContentView()方法放置在一个Activity的窗体中。
Content View是该体系中view对象的根。
Android四大组件之Activity详解
Android四⼤组件之Activity详解.Activity的本质Activity是Android提供的四⼤组件之⼀,是进⾏Android开发必不可少的组件.Activity是⼀个界⾯的载体,可以把它与html页⾯进⾏类⽐,html页⾯由各种各样的标签组成,⽽Activity则可以由各种控件组成.然⽽Activity也并不是那么简单.查看Activity类的源码我们就可以看到,这个类⼤概有六千多⾏代码,说明Android对Activity的处理是相当复杂的.不过我们平时进⾏开发的时候不需要了解到那么深⼊的地步,因为我们可以根据Activity中提供的⽅法快速的开发,Activity⽣命周期中涉及到七个回调⽅法..Activity的⽣命周期Android官⽅⽂档给出的Activity⽣命周期图当打开⼀个Activity的时候,会调⽤这个Activity的onCreate()⽅法,接着调⽤onStart()⽅法,然后调⽤onResume()⽅法.当onStart()⽅法执⾏之后,我们就可以看到这个Activity界⾯了.下⾯通过代码对单个Activity⽣命周期做进⼀步的解释.MainActivity.javapackage com.example.caobotao.activitylifecircle;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import android.view.View;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);Log.i("info","MainActivity onCreate()");}@Overrideprotected void onStart() {super.onStart();Log.i("info","MainActivity onStart()");}@Overrideprotected void onResume() {super.onResume();Log.i("info","MainActivity onResume()");}@Overrideprotected void onPause() {super.onPause();Log.i("info", "MainActivity onPause()");}@Overrideprotected void onStop() {super.onStop();Log.i("info", "MainActivity onStop()");}@Overrideprotected void onDestroy() {super.onDestroy();Log.i("info","MainActivity onDestroy()");}@Overrideprotected void onRestart() {super.onRestart();Log.i("info","MainActivity onRestart()");}}View Code运⾏项⽬后,Logcat输出:11-2420:00:49.16020104-20104/com.example.caobotao.activitylifecircle I/info: MainActivity onCreate()11-2420:00:49.17020104-20104/com.example.caobotao.activitylifecircle I/info: MainActivity onStart()11-2420:00:49.17020104-20104/com.example.caobotao.activitylifecircle I/info: MainActivity onResume()点击返回键,Logcat输出:11-2420:05:15.37020104-20104/com.example.caobotao.activitylifecircle I/info: MainActivity onStop()11-2420:05:15.37020104-20104/com.example.caobotao.activitylifecircle I/info: MainActivity onDestroy()下⾯简单讲⼀下Activity⽣命周期中每个函数的作⽤:onCreate() :当Activity第⼀次被创建的时候调⽤此⽅法.⼀般在此⽅法中进⾏控件的声明,添加事件等初始化⼯作.onStart():当Activity被显⽰到屏幕上的时候调⽤此⽅法.onResume():当此Activity能够被操作之前,也就是能够获得⽤户的焦点之前调⽤此⽅法.onRestart():当Activity被停⽌后⼜被再次启动之前调⽤此⽅法.接着将调⽤onStart()⽅法.onPause():当第⼀个Activity通过Intent启动第⼆个Activity的时候,将调⽤第⼀个Activity的onPause()⽅法.然后调⽤第⼆个Activity的onCreate(),onStart(),onResume()⽅法,接着调⽤第⼀个Activity的onStop()⽅法.如果Activity重新获得焦点,则将调⽤onResume()⽅法;如果此Activity进⼊⽤户不可见状态,那么将调⽤onStop()⽅法.onStop():当第⼀个Activity被第⼆个Activity完全覆盖,或者被销毁的时候回调⽤此⽅法.如果此Activity还会与⽤户进⾏交互,将调⽤onRestart⽅法();如果此Activity 将被销毁,那么将调⽤onDestroy()⽅法.onDestroy():Activity被销毁之前调⽤此⽅法.或者是调⽤finish()⽅法结束Activity的时候调⽤此⽅法.可以在此⽅法中进⾏收尾⼯作,⽐如释放资源等.(注意:重写某个Activity的这些回调⽅法的时候需要⾸先在第⼀⾏调⽤基类Activity的相应的回调⽅法.⽐如super.onCreate(),super.onStart()等等.)接下来了解⼀下多个Activity交互中的⽣命周期.在第⼀个Activity中添加⼀个按钮,⽤于启动第⼆个Activity.AActivity.javapackage com.example.caobotao.activitylifecircle;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.util.Log;import android.view.View;public class AActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);Log.i("info","AActivity onCreate()");findViewById(R.id.btnStartBAty).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {startActivity(new Intent(AActivity.this,BActivity.class));}});}@Overrideprotected void onStart() {super.onStart();Log.i("info","AActivity onStart()");}@Overrideprotected void onResume() {super.onResume();Log.i("info","AActivity onResume()");}@Overrideprotected void onPause() {super.onPause();Log.i("info", "AActivity onPause()");}@Overrideprotected void onStop() {super.onStop();Log.i("info", "AActivity onStop()");}@Overrideprotected void onDestroy() {super.onDestroy();Log.i("info","AActivity onDestroy()");}@Overrideprotected void onRestart() {super.onRestart();Log.i("info","AActivity onRestart()");}}View CodeBActivity.javapackage com.example.caobotao.activitylifecircle; import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.Menu;import android.view.MenuItem;public class BActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);setContentView(yout.activity_baty);Log.i("info","BActivity oncreate()");}@Overrideprotected void onStart() {super.onStart();Log.i("info","BActivity onStart()");}@Overrideprotected void onResume() {super.onResume();Log.i("info","BActivity onResume()");}@Overrideprotected void onStop() {super.onStop();Log.i("info","BActivity onStop()");}@Overrideprotected void onDestroy() {super.onDestroy();Log.i("info", "BActivity onDestroy()");}@Overrideprotected void onRestart() {super.onRestart();Log.i("info","BActivity onRestart()");}}View Code运⾏项⽬后,Logcat输出:11-2621:14:38.9606208-6208/com.example.caobotao.activitylifecircle I/info: AActivity onCreate()11-2621:14:38.9706208-6208/com.example.caobotao.activitylifecircle I/info: AActivity onStart()11-2621:14:38.9706208-6208/com.example.caobotao.activitylifecircle I/info: AActivity onResume()点击按钮打开BActivity后,Logcat输出:11-2621:14:42.0506208-6208/com.example.caobotao.activitylifecircle I/info: AActivity onPause()11-2621:14:42.0806208-6208/com.example.caobotao.activitylifecircle I/info: BActivity oncreate()11-2621:14:42.0906208-6208/com.example.caobotao.activitylifecircle I/info: BActivity onstart()11-2621:14:42.0906208-6208/com.example.caobotao.activitylifecircle I/info: BActivity onresume()11-2621:14:45.7506208-6208/com.example.caobotao.activitylifecircle I/info: AActivity onstop()然后点击BACK键,Logcat输出:11-2621:20:38.6506208-6208/com.example.caobotao.activitylifecircle I/info: BActivity onPause() 11-2621:20:38.9706208-6208/com.example.caobotao.activitylifecircle I/info: AActivity onRestart()11-2621:20:38.9706208-6208/com.example.caobotao.activitylifecircle I/info: AActivity onStart()11-2621:20:38.9706208-6208/com.example.caobotao.activitylifecircle I/info: AActivity onResume()11-2621:20:41.7106208-6208/com.example.caobotao.activitylifecircle I/info: BActivity onStop()11-2621:20:41.7106208-6208/com.example.caobotao.activitylifecircle I/info: BActivity onDestroy()可以看出,当启动第⼆个Activity时,总是先调⽤第⼀个Activity的onPause()⽅法,然后如果第⼆个Activity是第⼀次创建的话,则再调⽤第⼆个Activity的onCreate()⽅法,否则调⽤第⼆个Activity的onRestart()⽅法,接着调⽤onStart(),onResume()⽅法..Activity⽣命周期交互设计思想到这⾥,⼤家可能会有些疑问,⾕歌为什么要这样设计呢?如:1.当从第⼀个Activity启动第⼆个Activity的时候,为什么先调⽤第⼀个Activity的onPause()⽅法,然后再调⽤第⼆个Activity的onCreate()等⽅法呢?解释:假如有这样⼀个情况,你正在使⽤APP听⾳乐,突然来了⼀个电话,那么当然需要先暂停⾳乐,然后进⾏电话的处理。
Android应用开发的基本原理和开发环境搭建
Android应用开发的基本原理和开发环境搭建第一章 Android应用开发的基本原理Android应用开发是指利用Android操作系统进行移动应用程序的开发过程。
Android应用采用Java语言编写,因此需要掌握Java 编程语言的基本知识。
本章将介绍Android应用开发的基本原理。
1.1 Android应用的基本组成Android应用由四个基本组件组成:Activity、Service、Broadcast Receiver和Content Provider。
Activity用于用户界面的展示和交互,Service用于在后台执行长时间运行的操作,Broadcast Receiver用于接收和处理系统广播,Content Provider用于管理应用程序的数据。
1.2 Android应用的生命周期Android应用的生命周期包括四个状态:运行状态、暂停状态、停止状态和销毁状态。
当应用进入暂停状态时,会释放部分资源以便其他应用程序使用;停止状态下,应用被移出内存,但系统保留应用的状态信息;销毁状态下,应用被完全移除,所有资源被释放。
1.3 AndroidManifest.xml文件AndroidManifest.xml文件是每个Android应用程序必须包含的文件。
该文件用于声明应用程序的基本信息,包括应用名称、版本号、权限要求、组件声明等。
Android系统通过解析AndroidManifest.xml文件来管理应用程序的组件。
第二章开发环境搭建为了进行Android应用的开发,需要搭建相应的开发环境。
本章将介绍Android开发环境的搭建步骤。
2.1 安装Java Development Kit (JDK)Android应用的开发语言是Java,因此需要安装Java Development Kit (JDK)。
首先需要下载适合操作系统的JDK安装程序,然后按照安装向导进行安装。
安装完成后,需要配置系统环境变量,将JDK的路径添加到系统的Path变量中。
activity用法
activity用法Activity是Android开发中常用的组件,是用户界面或页面交互的基本元素,具有完整的处理及生命周期模型。
下面介绍下Activity的用法:1. 创建Activity:Android提供基本的Activity模版,需要使用其子类定义界面。
在onCreate()方法中,可以定义样式及初始化界面所需的资源。
2. Activity的生命周期:Activity的生命周期包括创建、启动(活动、可视、暂停、停止)、销毁几个阶段,在Activity切换时,会一次性进行持续处理各阶段动作。
3. Activity消息管理:Android使用消息机制处理不同Activity之间的通信,如:主Activity调用子Activity,在子Activity返回来时,会发出信号通知主Activity,并传递结果。
4. Activity回退处理:Activity提供回退键功能,有三种反应:关闭当前Activity、回到上一Level、回回到桌面,它可以使用finish()方法关闭Activity,也可以配置点击回退键的行为。
5. Activity启动流程:Activity的启动流程涉及到Activity的创建(onCreate())、显示(onResume())、销毁(onDestory())等,为确保正常运行,只能在对应的生命周期回调函数中完成对应的操作。
6. Activity进阶功能:Activity可以切花Window悬浮方式,可以显示2个Activity同时存在,并可以支持悬浮窗等功能;Activity也可以支持高斯模糊,可以达到Android手机拨号等效果;可以添加植入式广告、视频等功能,实现定制化内容展示。
7. Activity性能提升:可以使用代理类或模板技术,将不活跃的界面保持活跃状态,减少界面的资源重新加载;可以在onStop()函数实现缓存,减少不必要的逻辑操作。
以上就是Activity的用法,在Android开发中熟练运用Activity,可以有效提升应用程序的体验和性能。
Android—activity详解
android activity详解一:概述1概述2如何创建Activity3实现用户界面4在名单文件中声明activity5使用intent过虑器6启动一个Activity7启动一个acitvity并得到结果8关闭Activity概述Activities 是一个程序的组件之一。
它的主要功能是提供界面。
一个程序一般由多个Activity组成,各activities之间关系很松散,它们之间没有直接的关联。
必须有一个activity被指定为主activity,它是程序启动时首先显示的界面。
每个activity都可以随意启动其它的activity。
每当一个activity被启动,则前一个activity就被停止。
一个程序中的所有启动的activity都被放在一个栈中,所以被停止的activity并没有销毁,而在存于棧中。
新启动的activity先被存放于栈中,然后获得输入焦点。
在当前活动的activity上点返回键,它被从棧中取出,然后销毁,然后上一个activity被恢复。
当一个activity因为新的activity启动而被停止时,它会收到状态变化的通知,这样的变化有多个,每个都会引起系统调用一个相应的回调方法以通知activity,这些回调方法被统称为“生命周期回调方法”。
这些回调方法分别在Activity被创建、停止、恢复、销毁时被调用。
如何创建Activity1 从类activity继承。
2 实现“生命周期回调方法”两个最重要的方法是:onCreate()--这个是必须实现的函数,在其中做初始化工作。
记住:你必须在此函数中调用setContentView()函数的设置Activity的界面。
onPause()--这个虽然很重要,但不是要必须实现的。
此函数在用户离开Activity 时被调用(这一般并不表示Activity要被销毁了)。
在这个函数中,你一般需要提交那些需保存状态的数据(因为用户可能不再返回到这个Activity)。
activity启动原理
activity启动原理Activity的启动原理涉及到Android系统的多个组件和机制。
以下是Activity启动的基本原理:1.ActivityManagerService:Activity管理的核心是ActivityManagerService(AMS),它是一个独立的进程,负责管理系统中所有的Activity实例。
AMS维护了一个Activity记录列表,记录了系统中所有Activity的状态和信息。
2.启动过程:当一个Activity需要启动时,首先会通过AMS的startActivity()方法进行启动。
这个方法会根据传入的Intent信息找到需要启动的Activity实例,并通知到相应的应用程序进程。
3. 应用程序进程:每个应用程序都会有一个对应的进程,进程中运行着一个主线程(即ActiveThread)。
ActiveThread循环处理消息,包括处理Activity的启动请求。
4. 进程间通信:ActiveThread与AMS的通信属于进程间通信,使用Binder机制进行通信。
ActiveThread通过代理模式启动到AMS中执行,创建ActivityRecord并加入到AMS的mHistory记录中。
5. 创建Activity实例:在应用程序进程中,ActiveThread会根据AMS的指令创建相应的Activity实例,并将其加入到mActivities中。
6. 开始调度:当Activity实例创建完成后,会进行相应的调度和处理,包括加载资源、创建视图等操作,以便用户能够看到和交互。
总之,Activity的启动过程涉及到Android系统的多个组件和机制,通过AMS、ActiveThread等组件的协作,实现了Activity的启动和管理。
activity的创建和使用
activity的创建和使用Activity的创建和使用Activity是Android应用程序中的一个重要组件,它代表了用户界面的一层,负责展示用户交互的内容。
本文将详细介绍如何创建和使用Activity,帮助开发者更好地理解和应用该组件。
一、创建Activity在Android Studio中创建一个新的Activity非常简单。
以下步骤将指导您完成创建过程:1. 打开Android Studio并创建一个新的Android项目。
选择File菜单,点击New,再点击New Project。
2. 输入项目名称、选择存储位置以及选择其他相关配置,然后点击Next。
3. 在接下来的界面中,您可以选择Activity的模板。
Android Studio提供了一系列可选的Activity模板,如空白Activity、基于底部导航栏的Activity、登录Activity等。
选择适合您项目需求的模板,点击Next。
4. 输入Activity的名称以及所属的包名,点击Finish。
Android Studio 将会自动生成相应的Activity文件以及相关的资源文件。
至此,您已经成功地创建了一个新的Activity。
在创建过程中,Android Studio为您自动生成了与Activity相关的布局文件、资源文件和Java类文件,且这些文件已经预先连接在一起。
二、Activity的使用创建Activity后,我们可以对其进行进一步的修改和定制,以满足不同的功能需求。
以下是使用Activity的一些常见操作和应用场景。
1. 修改布局文件在res/layout目录下可以找到Activity所对应的布局文件,其中XML语言被用来描述UI界面的结构和样式。
您可以根据需要修改布局文件,调整组件的位置、大小和样式等。
例如,您可以添加按钮、文本框、图片等组件,并设置相应的属性和事件。
2. 添加事件监听器Activity中的组件可以通过添加事件监听器与用户交互。
Android之Activity系列总结(一)--Activity概览
Android之Activity系列总结(⼀)--Activity概览Activity本⽂内容1. 创建 Activity1. 实现⽤户界⾯2. 在清单⽂件中声明 Activity2. 启动 Activity1. 启动 Activity 以获得结果3. 结束 Activity4. 管理 Activity ⽣命周期1. 实现⽣命周期回调2. 保存 Activity 状态3. 处理配置变更4. 协调 Activity是⼀个应⽤组件,⽤户可与其提供的屏幕进⾏交互,以执⾏拨打电话、拍摄照⽚、发送电⼦邮件或查看地图等操作。
每个 Activity 都会获得⼀个⽤于绘制其⽤户界⾯的窗⼝。
窗⼝通常会充满屏幕,但也可⼩于屏幕并浮动在其他窗⼝之上。
⼀个应⽤通常由多个彼此松散联系的 Activity 组成。
⼀般会指定应⽤中的某个 Activity 为“主”Activity,即⾸次启动应⽤时呈现给⽤户的那个Activity。
⽽且每个 Activity 均可启动另⼀个 Activity,以便执⾏不同的操作。
每次新 Activity 启动时,前⼀ Activity 便会停⽌,但系统会在堆栈(“返回栈”)中保留该 Activity。
当新 Activity 启动时,系统会将其推送到返回栈上,并取得⽤户焦点。
返回栈遵循基本的“后进先出”堆栈机制,因此,当⽤户完成当前 Activity 并按“返回”按钮时,系统会从堆栈中将其弹出(并销毁),然后恢复前⼀ Activity。
(⽂档中对返回栈有更详细的阐述。
)当⼀个 Activity 因某个新 Activity 启动⽽停⽌时,系统会通过该 Activity 的⽣命周期回调⽅法通知其这⼀状态变化。
Activity 因状态变化—系统是创建 Activity、停⽌ Activity、恢复 Activity 还是销毁 Activity— ⽽收到的回调⽅法可能有若⼲种,每⼀种回调都会为您提供执⾏与该状态变化相应的特定操作的机会。
Activity使用详解
Activity使⽤详解极⼒推荐⽂章:欢迎收藏本篇⽂章主要介绍Android开发中的部分知识点,通过阅读本篇⽂章,您将收获以下内容:1. Activity ⽣命周期简介2. Activity 必须在AndroidMainfest.xml 中注册3. 启动Activity 的⽅法4. 启动带返回值的Activity5. Activity结束⽅法6. Activity状态保存,恢复的⽅法7. ⾯试中经常问到的例⼦Activity是Android最基本的四⼤组件之⼀(Activity活动,Service服务,ContentProvider内容提供者,BroadcastReceiver⼴播),Activity主要负责与⽤户进⾏交互,是每位Android开发必须掌握的知识点。
1. Activity ⽣命周期简介⾸先我们需要了解⼀下Activity的继承关系。
Activity 继承关系Activity继承关系如下:ng.Object↳ android.content.Context↳ android.content.ContextWrapper↳ android.view.ContextThemeWrapper↳ android.app.Activity理解完Activity的继承关系后,我们开始了解Activity的声明周期,Activity的⽣命周期直接影响到与⽤户的交互,此声明周期很重要。
Activity ⽣命周期Activity⽣命周期图如下:Activity ⽣命周期图在代码中Activity⽣命周期回调⽅法Activity⽣命周期回调⽅法如下:// Activity 创建⽅法@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);Log.i(TAG, "----onCreate----");setContentView(yout.activity_methods);}// Activity 在最新任务列表中打开时候会⾛此⽅法@Overrideprotected void onRestart() {super.onRestart();Log.i(TAG, "----onRestart----");}// Activity 在onCreate 或者 onRestart之后执⾏@Overrideprotected void onStart() {super.onStart();Log.i(TAG, "----onStart----");}// 正在与⽤户交互的界⾯@Overrideprotected void onResume() {super.onResume();Log.i(TAG, "----onResume----");}// 被其他与⽤户交互的Activity 部分覆盖@Overrideprotected void onPause() {super.onPause();Log.i(TAG, "----onPause----");}// 被其它与⽤户交互的Activity 全部覆盖@Overrideprotected void onStop() {super.onStop();Log.i(TAG, "----onStop----");}// Activity 销毁时候调⽤此⽅法@Overrideprotected void onDestroy() {super.onDestroy();Log.i(TAG, "----onDestroy----");}Activity 4 种Activity常见的四种⽣命周期状态如下:1. Active 运⾏状态2. Pause 暂停状态3. Stop 停⽌状态4. Killed 消亡状态2. Activity 必须在 AndroidMainfest.xml 中注册Activity是四⼤组件之⼀,Android规定四⼤组件必须在AndroidMainfest.xml中注册,Activity如果不注册,则会引起App Crash报错。
Activity详解
Activity详解 Activity是android应⽤的重要组成单元之⼀(另外3个是Service,BroadcastReceiver和ContentProvider)。
实际应⽤包含了多个Activity,不同的Activity向⽤户呈现不同的操作界⾯。
Android应⽤的多个Activity组成Activity栈,当前活动的Activity位于栈顶。
对于Android 应⽤⽽⾔,Activity主要负责与⽤户交互,并向⽤户呈现应⽤状态。
1 建⽴、配置和使⽤Activity1.1 Activity类简介当⼀个Activity定义出来后,该Activity类何时被实例化、它所包含的⽅法何时被调⽤,这些都不是由开发者来决定,⽽是Android系统决定创建Activity需要重写⼀个或者多个⽅法。
其中最常见的就是onCreate⽅法Activity相关类关系视图AccountAuthenticatorActivity:实现账户管理界⾯的ActivityTabActivity实现Tab界⾯的ActivityListActivity实现列表界⾯的ActivityAliasActivity:别名Activity的基类,启动其他Activity时结束⾃⼰ExpandableListActivity实现可扩展列表界⾯的ActivityLauncherActivity:实现Activity列表界⾯的Activity,当单击列表时,所对应的Activity启动PreferenceActivity:实现程序多参数设置,存储界⾯的Activity 对于Activity的具体⼦类如ListActivity,LauncherActivity,ExpandableActivity等⽆需实现具体的布局⽂件,会⾃动调⽤默认布局⽂件。
⽰例:PreferenceActivity的使⽤Activity⽂件import android.preference.PreferenceActivity;import android.preference.PreferenceFragment;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.Button;import android.widget.Toast;import java.util.List;public class PreferenceActivityTest extends PreferenceActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);if(hasHeaders()){Button button = new Button(this);button.setText("设置操作");setListFooter(button);}}public void onBuildHeaders(List<Header> target){loadHeadersFromResource(R.xml.preference_headers, target);}public boolean isValidFragment(String fragmentName){return true;//super.isValidFragment(fragmentName);//return StockPreferenceFragment.class.getName().equals(fragmentName);}public static class Prefs1Fragment extends PreferenceFragment{@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);addPreferencesFromResource(R.xml.preferences);}}public static class Prefs2Fragment extends PreferenceFragment{public void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);addPreferencesFromResource(R.xml.display_prefs);String website = getArguments().getString("website");Toast.makeText(getActivity(),"⽹站域名是:" + website, Toast.LENGTH_SHORT).show(); }}}View CodePreference主页布局⽂件<?xml version="1.0" encoding="utf-8"?><preference-headersxmlns:android="/apk/res/android"><!-- 指定启动指定PreferenceFragment的列表项 --><header android:fragment="com.example.penghuster.exampletest.PreferenceActivityTest$Prefs1Fragment"android:icon="@drawable/ic_settings_applications"android:title="程序选项设置"android:summary="设置应⽤的相关选项"/><!-- 指定启动指定PreferenceFragment的列表项 --><header android:fragment="com.example.penghuster.exampletest.PreferenceActivityTest$Prefs2Fragment"android:icon="@drawable/ic_settings_display"android:title="界⾯选项设置 "android:summary="设置显⽰界⾯的相关选项"><!-- 使⽤extra可向Activity传⼊额外的数据 --><extra android:name="website"android:value=""/></header><!-- 使⽤Intent启动指定Activity的列表项 --><headerandroid:icon="@drawable/ic_settings_display"android:title="使⽤Intent"android:summary="使⽤Intent启动某个Activity"><intent android:action="android.intent.action.VIEW"android:data=""/></header></preference-headers>View CodeFragment1布局⽂件<?xml version="1.0" encoding="utf-8"?><PreferenceScreen xmlns:android="/apk/res/android"><!-- 设置系统铃声 --><RingtonePreferenceandroid:ringtoneType="all"android:title="设置铃声"android:summary="选择铃声(测试RingtonePreference)"android:showDefault="true"android:key="ring_key"android:showSilent="true"></RingtonePreference><PreferenceCategory android:title="个⼈信息设置组"><!-- 通过输⼊框填写⽤户名 --><EditTextPreferenceandroid:key="name"android:title="填写⽤户名"android:summary="填写您的⽤户名(测试EditTextPreference)"android:dialogTitle="您所使⽤的⽤户名为:"/><!-- 通过列表框选择性别 --><ListPreferenceandroid:key="gender"android:title="性别"android:summary="选择您的性别(测试ListPreference)"android:dialogTitle="ListPreference"android:entries="@array/gender_name_list"android:entryValues="@array/gender_value_list"/></PreferenceCategory><PreferenceCategory android:title="系统功能设置组 "><CheckBoxPreferenceandroid:key="autoSave"android:title="⾃动保存进度"android:summaryOn="⾃动保存: 开启"android:summaryOff="⾃动保存: 关闭"android:defaultValue="true"/></PreferenceCategory></PreferenceScreen>View CodeFragment2布局⽂件<?xml version="1.0" encoding="utf-8"?><PreferenceScreen xmlns:android="/apk/res/android"><!-- 设置系统铃声 --><RingtonePreferenceandroid:ringtoneType="all"android:title="设置铃声"android:summary="选择铃声(测试RingtonePreference)"android:showDefault="true"android:key="ring_key"android:showSilent="true"></RingtonePreference><PreferenceCategory android:title="个⼈信息设置组"><!-- 通过输⼊框填写⽤户名 --><EditTextPreferenceandroid:key="name"android:title="填写⽤户名"android:summary="填写您的⽤户名(测试EditTextPreference)"android:dialogTitle="您所使⽤的⽤户名为:"/><!-- 通过列表框选择性别 --><ListPreferenceandroid:key="gender"android:title="性别"android:summary="选择您的性别(测试ListPreference)"android:dialogTitle="ListPreference"android:entries="@array/gender_name_list"android:entryValues="@array/gender_value_list"/></PreferenceCategory><PreferenceCategory android:title="系统功能设置组 "><CheckBoxPreferenceandroid:key="autoSave"android:title="⾃动保存进度"android:summaryOn="⾃动保存: 开启"android:summaryOff="⾃动保存: 关闭"android:defaultValue="true"/></PreferenceCategory></PreferenceScreen>View Code注意:需要重写PreferenceActivity的isValidFragment⽅法1.2 配置ActivityAndroid应⽤要求多有应⽤程序组件(Activity、Service、ContentProvider、BroadcastReceiver)都必须显式进⾏配置只需为<application/>元素添加<Activity />⼦元素即可,另外需要为Activity元素指定⼀个或者多个intent-filter,该元素⽤于指定该Activity可以响应的Intent从DDMS查看PreferenceActivity输出的配置⽂件1.3 启动关闭Activity1.3.1 ⼀个Android应⽤通常会包含多个Activity,但只有⼀个Activity会作为程序⼊⼝-----但Android应⽤运⾏时将会⾃动启动并执⾏该Activity。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Android基础课程Activity组成原理本节学习目标:深入理解Activity四种状态以及状态间的转换进一步认识Activity生命周期的含义理解Activity栈的机理以及特性理解Task、Process、Application、Activity、Service的区别掌握Activity配置中几种属性的应用Activity是什么?一个可视的用户交互接口Activity代表一块系统资源Activity的四种状态Active/Runing一个新Activity 启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并可和用户交互的激活状态。
Activity的四种状态Paused状态:当Activity 被另一个透明或者 Dialog 样式的 Activity 覆盖时的状态。
此时它依然与窗口管理器保持连接,系统继续维护其内部状态,所以它仍然可见,但它已经失去了焦点故不可与用户交互。
Activity的四种状态Stopped 状态:当Activity是不可见的时,Activity处于Stopped状态。
Activity将继续保留在内存中保持当前的所有状态和成员信息,假设系统别的地方需要内存的话,这时它是被回收对象的主要候选。
当Activity处于Stopped状态时,一定要保存当前数据和当前的UI状态,否则一旦Activity 退出或关闭时,当前的数据和UI状态就丢失了。
Activity的四种状态Killed状态:Activity被杀掉以后或者被启动以前,处于killed状态。
这时Activity已被移除Activity堆栈中,需要重新启动才可以显示和使用。
当一个 Activity 实例被创建、销毁或者启动另外一个 Activity 时,它在这四种状态之间进行转换,这种转换的发生依赖于用户程序的动作。
如图说明了 Activity 在不同状态间转换的时机和条件:Activity 的状态转换Activity生命周期Activitys在系统中是以堆栈的方式管理的,当一个新的Activity启动时,他就被放到系统task的顶端,变为正在运行的Activity,之前的Activity会继续保存在系统堆栈的下面,直到他上面的Activity都退出后,才会再次变回运行状态。
Activity完整的生命周期Activity可见的生命周期Activity活跃的生命周期Activity 生命周期•在 android.app.Activity类中,Android 定义了一系列与生命周期相关的方法,在我们自己的Activity 中,只是根据需要复写需要的方法,Java 的多态性会保证我们自己的方法被虚拟机调用,这一点与 J2ME 中的 MIDlet 类似。
Activity 生命周期protected void onCreate(Bundle savedInstanceState)一个 Activity 的实例被启动时调用的第一个方法。
一般情况下,我们都覆盖该方法作为应用程序的一个入口点,在这里做一些初始化数据、设置用户界面等工作。
大多数情况下,我们都要在这里从 xml 中加载设计好的用户界面。
当然,也可从 savedInstanceState中读我们保存到存储设备中的数据,但是需要判断 savedInstanceState是否为 null,因为Activity 第一次启动时并没有数据被存贮在设备中。
Activity 生命周期protected void onStart()该方法在onCreate() 方法之后被调用,或者在Activity 从 Stop 状态转换为 Active 状态时被调用。
protected void onResume()在 Activity 从Pause 状态转换到 Active 状态时被调用。
protected void onPause()在 Activity 从Active 状态转换到 Pause 状态时被调用。
Activity 生命周期protected void onStop()在 Activity 从Active 状态转换到 Stop 状态时被调用。
一般我们在这里保存 Activity 的状态信息。
protected void onDestroy()在 Active 被结束时调用,它是被结束时调用的最后一个方法,在这里一般做些释放资源,清理内存等工作。
Actived 状态Killed 状态Stoped 状态Paused 状态->onPause->onStop ->onStart->onResume ->onResume ->onStop->onDestroy ->onDestroy->onCreate ->onStart ->onResume ->onPause ->onStop ->onDestroy ->onPauseActivity 栈Android 是通过一种 Activity 栈的方式来管理 Activity 的,一个 Activity 的实例的状态决定它在栈中的位置。
处于前台的 Activity 总是在栈的顶端,当前台的 Activity 因为异常或其它原因被销毁时,处于栈第二层的Activity 将被激活,上浮到栈顶。
当新的Activity 启动入栈时,原 Activity 会被压入到栈的第二层。
一个 Activity 在栈中的位置变化反映了它在不同状态间的转换。
Activity 的状态与它在栈中的位置关系除了最顶层即处在 Active 状态的 Activity外,其它的 Activity 都有可能在系统内存不足时被回收,一个 Activity 的实例越是处在栈的底层,它被系统回收的可能性越大。
系统负责管理栈中 Activity 的实例,它根据Activity 所处的状态来改变其在栈中的位置。
Task、Process、Application、Activity、Service的区别Task可以认为是用户体验上的一个“应用”。
Process系统内部真实运行一个应用程序的载体。
Application可以认为从开发角度上的一个独立的应用程序。
可以简单的理解为一个package包。
Activity 系统内一个资源组件。
组成应用程序实体的各个可视组件。
Service 系统内一个资源组件,但不可视的。
Activity作为程序的入口<actionandroid:name="android.intent.action.MAIN " />这个属性定义Activity可以作为应用程序的入口。
android中程序可以有多个入口,没有main函数。
<categoryandroid:name=" UNCHER" />这个属性定义了Activity显示在Launcher里。
只有定义这个属性的Activity 才能显示在屏幕的启动栏里。
Activity 的Intent FilterIntent Filter 描述了一个组件愿意接收什么样的 Intent 对象,Android 将其抽象为android.content.IntentFilter 类。
在 Android 的 AndroidManifest.xml 配置文件中可以通过 <intent-filter >节点为一个 Activity 指定其 Intent Filter,以便告诉系统该 Activity可以响应什么类型的 Intent。
定义一个Activity定义一个可以作为程序入口,并且显示在启动栏里的Activity。
<activity android:name="ActA" android:label="ActA" ><intent-filter><actionandroid:name="android.intent.action.MAIN" /><categoryandroid:name="UNCHE R" /></intent-filter></activity>AndroidManifest.xml中配置Activity 每个应用程序都有个AndroidManifest.xml文件,名字唯一,确定。
向系统注册应用程序的各个组件,组件关注的事件、以及应用需要的权限。
定义应用程序唯一标示(package名)。
定义应用程序进程。
定义其他应用调用本应用组件的各种权限。
定义软件运行需要的版本等。
定义软件运行需要的lib库。
创建一个Activity在 android 中创建一个 Activity 是很简单的事情,编写一个继承自android.app.Activity的 Java 类并在AndroidManifest.xml声明即可。
下面是一个为了研究 Activity 生命周期的一个Activity 实例初始化Activity@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); setContentView(yout.main);Log.e(LOG_TAG, "onCreate");}Activity属性name属性:指定Activity对应的类名。
android:theme属性:指定应用什么主题。
label属性:设置显示的名称,一般在Launcher里面显示。
icon属性:指定显示的图标。
在Launcher里面显示。
Screen orientation属性:指定当前Activity显示横竖等。
Activity属性android:allowTaskReparenting=["true" | "false"] 是否允许activity更换从属的任务,比如从短信息任务切换到浏览器任务。
android:alwaysRetainTaskState=[“true” |“false”] 当用户离开一个task一段时间后,系统就会清理掉task里除了rootActivity以外的Activity,如果一个task里的root Activity 的alwaysRetainTaskState属性设置为true,那么前面描述的默认情况就不会出现了,task即使过了一段时间也会一直保留所有的Activity。
android:clearTaskOnLaunch=["true"" | "false"] 根Activity为“true”时,当用户离开Task并返回时,stack会清除直到根Activity。