Android生命周期详解
android lifecycle 用法 -回复

android lifecycle 用法-回复Android生命周期的用法一. 简介Android生命周期是指一个Android应用程序在运行过程中各个组件的状态变化顺序。
了解和掌握Android生命周期是开发Android应用程序的基本功之一。
在本文中,我们将一步一步回答关于Android生命周期的用法。
二. 活动(Activity)的生命周期1. onCreate() - 这个方法是在活动被创建时调用的。
在这个方法中,我们可以完成一些初始化工作,比如设置布局、绑定控件,以及一些其他必要的准备工作。
2. onStart() - 这个方法是在活动即将变为可见状态时调用的。
在这个方法中,我们可以做一些准备工作,比如加载数据、注册监听器。
3. onResume() - 这个方法是在活动进入前台并可见时调用的。
这是活动与用户进行交互的时刻,我们可以在此方法中处理用户输入、更新UI等操作。
4. onPause() - 这个方法是在活动失去前台焦点但仍可见时调用的。
在这个方法中,我们应该暂停正在进行的操作,比如暂停动画、停止网络请求等。
5. onStop() - 这个方法是在活动即将进入后台不可见状态时调用的。
在这个方法中,我们可以释放资源、保存数据等操作,以便在恢复时能够正常运行。
6. onRestart() - 这个方法是在活动从停止状态重新启动时调用的。
我们可以在这个方法中做一些重新初始化的工作。
7. onDestroy() - 这个方法是在活动被销毁时调用的。
在这个方法中,我们应该释放所有的资源,比如关闭数据库连接、注销广播接收器等。
三. 片段(Fragment)的生命周期1. onAttach() - 这个方法是在片段与活动关联时调用的。
在这个方法中,我们可以获取到与该片段关联的活动的引用,以便进行交互操作。
2. onCreate() - 这个方法是在片段被创建时调用的。
在这个方法中,我们可以进行一些初始化工作,比如设置布局、绑定控件等。
android面试题及答案

android面试题及答案一、Activity 生命周期相关1. 请简述Activity的生命周期,并解释每个状态的含义。
- Activity生命周期主要包括 onCreate(), onStart(), onResume(), onPause(), onStop(), 和 onDestroy() 六个回调方法。
onCreate() 在Activity第一次创建时调用,用于初始化界面和数据;onStart() 当Activity对用户可见时调用,表示Activity从后台进入前台;onResume() 当Activity准备与用户交互时调用,此时可以获取到用户输入;onPause() 当Activity失去焦点,但不一定会结束时调用,用于保存数据和清理资源;onStop() 当Activity完全不可见时调用,用于释放资源;onDestroy() 当Activity被完全销毁时调用。
2. Activity和Fragment的生命周期有什么区别?- Activity和Fragment的生命周期大部分相似,但Fragment没有onCreate()方法,而是使用onAttach()和onDetach()方法来表示与Activity的关联和解绑。
Fragment还有onActivityCreated()方法,在Activity的onCreate()之后调用,表示Activity已经完全创建。
二、Intent 传递数据机制1. Intent在Android中的作用是什么?- Intent是Android中用于组件间通信的一种机制,它允许不同组件之间传递消息和请求操作。
Intent可以用于启动Activity、Service,或者发送广播等。
2. 如何使用Intent传递数据?- 可以通过Intent的putExtra()方法来传递数据。
例如,Intent intent = new Intent(this, TargetActivity.class);intent.putExtra("key", "value"); 然后通过startActivity(intent)启动目标Activity,目标Activity可以通过getIntent().getStringExtra("key")接收数据。
activity生命周期有几种状态

activity生命周期有几种状态
Activity生命周期有五种状态,分别是:
1.启动状态:当Activity启动后,会进入此状态,但此状态很短暂,会很快进入运行状态。
2.运行状态:Activity处于屏幕的最前端,它是可见的、有焦点的,并可以与用户进行交互,如单击、长按等事件。
此时,Activity 处于活动或运行状态。
3.暂停状态:在某些情况下,如Activity上覆盖了一个透明或非全屏的Activity,被覆盖的Activity仍然对用户可见,但无法获取焦点,此时它处于暂停状态。
暂停的Activity仍然是存活状态,保留着所有的状态和成员信息,并保持和窗口管理器的连接,但当系统内存不足时,它可能会被系统杀死。
4.停止状态:当Activity完全不可见时,如被另一个Activity 遮挡,它就处于停止状态。
此时,Activity仍然保留着当前的状态和成员信息,但由于对用户不可见,如果系统内存不足,这个Activity 很容易被系统杀死。
5.销毁状态:当Activity处于销毁状态时,意味着它将被清理出内存。
请注意,Activity生命周期指的是一个Activity从创建到销毁的全过程,包括上述的五种状态。
在Android开发中,理解和掌握Activity的生命周期对于内存管理和用户体验都至关重要。
Android实验报告—Android框架及Activity 生命周期程序设计

Android框架及Activity 生命周期程序设计实验目的:本实验的目的是使学生深入了解Android程序框架结构、了解Android组件的生命周期中各状态的变化关系、掌握Android应用程序的调试方法和工具。
通过程序设计, 掌握Activity的三种生命周期:全生命周期、可视生命周期和活动生命周期;每种生命周期中包含的不同的事件回调函数, 以及它们的作用和调用顺序, 深入理解Activity的生命周期过程。
实验要求:根据下图, 设计程序解释不同的事件回调函数在Activity的三种生命周期的作用如何。
[实现提示]1.建立Android工程, 其中工程名称: ActivityLifeCycle你的学号包名称:.bistu.你的班级号.ActivityLifeCycle你的学号Activity名称: ActivityLifeCycle你的学号如: 电技1001班学号后三位为123的学生, 应将包名称设为:.bistu.dj1001.ActivityLifeCycle1232、工程建立完毕后, 可以不进行界面设计, 即不必修改main.xml文件, 直接编写Java文件3.通过在生命周期函数中添加“日志点”的方法进行调试4、为了显示结果易于观察和分析, 在LogCat设置过滤器LifeCycleFilter测试过程在程序运行过程, 通过点击模拟器上的“返回键”, 生命周期中事件回调函数的执行顺序及作用是函数的调用顺序: onSaveInstanceState ()→onPause()→onStop() →onRestart()→onStart()→onResume();调用onSaveInstanceState()函数保存Activity状态;调用onPause()和onStop(), 停止对不可见Activity的更新;调用onRestart()恢复需要界面上需要更新的信息;调用onStart()和onResume()重新显示Activity, 并接受用户交互。
移动开发实验七

实验七:Android生命周期与服务实验目的本次实验的目的是让大家掌握Android生命周期,并掌握服务组件的应用。
实验要求1.掌握Android生命周期2.掌握服务组件及其应用实验内容:一、查看Activity生命周期1、布局文件有两个。
(1)activity_main.xml代码如下:<LinearLayoutandroid:layout_height="fill_parent"android:layout_width="fill_parent"android:orientation="vertical"xmlns:android="/apk/res/android"><TextViewandroid:layout_height="wrap_content"android:layout_width="fill_parent"android:id="@+id/txtMainAct"/><Buttonandroid:layout_height="wrap_content"android:layout_width="fill_parent"android:id="@+id/btnMainAct"/></LinearLayout>(2)second.xml 布局文件如下:<LinearLayoutandroid:layout_height="fill_parent"android:layout_width="fill_parent"android:orientation="vertical"xmlns:android="/apk/res/android"><TextViewandroid:layout_height="wrap_content"android:layout_width="fill_parent"android:id="@+id/txtSecondAct"/><Buttonandroid:layout_height="wrap_content"android:layout_width="fill_parent"android:id="@+id/btnSecondAct"/></LinearLayout>2、活动类文件有两个:(1)MainActivity.javaimport android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;publicclass MainActivity extends Activity {private Button m_btnMainAct=null;private TextView m_txtMainAct=null;@Overrideprotectedvoid onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);setContentView(yout.activity_main);m_btnMainAct=(Button)findViewById(R.id.btnMainAct);m_txtMainAct=(TextView)findViewById(R.id.txtMainAct);m_btnMainAct.setOnClickListener(new ButtonListener());m_btnMainAct.setText("启动SecondActivity");m_txtMainAct.setText("这是MainActivity");}@Overrideprotectedvoid onDestroy() {// TODO Auto-generated method stubSystem.out.println("MainActivity-onDestroy");super.onDestroy();}@Overrideprotectedvoid onPause() {// TODO Auto-generated method stubSystem.out.println("MainActivity-onPause");super.onPause();}@Overrideprotectedvoid onRestart() {// TODO Auto-generated method stubSystem.out.println("MainActivity-onRestart");super.onRestart();}@Overrideprotectedvoid onResume() {// TODO Auto-generated method stubSystem.out.println("MainActivity-onResume");super.onResume();}@Overrideprotectedvoid onStart() {// TODO Auto-generated method stubSystem.out.println("MainActivity-onStart");super.onStart();}@Overrideprotectedvoid onStop() {// TODO Auto-generated method stubSystem.out.println("MainActivity-onStop");super.onStop();}class ButtonListener implements OnClickListener{@Overridepublicvoid onClick(View v) {Intent intent = new Intent();intent.setClass(MainActivity.this, SecondActivity.class);MainActivity.this.startActivity(intent);}}@Overridepublicboolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu);returntrue;}@Overridepublicboolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {returntrue;}returnsuper.onOptionsItemSelected(item);}}(2)SecondActivity.javaimport android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;publicclass SecondActivity extends Activity {private Button m_btnSecondAct=null;private TextView m_txtSecondAct=null;/** Called when the activity is first created. */@Overridepublicvoid onCreate(Bundle savedInstanceState) {System.out.println("SecondActivity-onCreate");super.onCreate(savedInstanceState);setContentView(yout.second);m_btnSecondAct=(Button)findViewById(R.id.btnSecondAct);m_txtSecondAct=(TextView)findViewById(R.id.txtSecondAct);m_btnSecondAct.setOnClickListener(new ButtonListener());m_btnSecondAct.setText("返回MianActivity");m_txtSecondAct.setText("这是SecondActivity");}@Overrideprotectedvoid onDestroy() {// TODO Auto-generated method stubSystem.out.println("SecondActivity-onDestroy");super.onDestroy();}@Overrideprotectedvoid onPause() {// TODO Auto-generated method stubSystem.out.println("SecondActivity-onPause");super.onPause();}@Overrideprotectedvoid onRestart() {// TODO Auto-generated method stubSystem.out.println("SecondActivity-onRestart");super.onRestart();}@Overrideprotectedvoid onResume() {// TODO Auto-generated method stubSystem.out.println("SecondActivity-onResume");super.onResume();}@Overrideprotectedvoid onStart() {// TODO Auto-generated method stubSystem.out.println("SecondActivity-onStart");super.onStart();}@Overrideprotectedvoid onStop() {// TODO Auto-generated method stubSystem.out.println("SecondActivity-onStop");super.onStop();}class ButtonListener implements OnClickListener{@Overridepublicvoid onClick(View v) {Intent intent = new Intent();intent.setClass(SecondActivity.this, MainActivity.class);SecondActivity.this.startActivity(intent);}}}3、AndroidManifest.xml文件中在</application>之前注册第二个活动<activityandroid:name=".SecondActivity"android:label="@string/app_name"></activity></application>4、在logcat中观察System.out.的输出结果,了解生命周期中各个回调函数的调用机制。
android高级工程师面试题

android高级工程师面试题在Android平台上,高级工程师的技术要求较为严苛,需要具备深厚的编程基础和丰富的项目经验。
下面是一些常见的Android高级工程师面试题,以供参考。
1. 请简要介绍一下Activity的生命周期及其对应的回调方法。
Activity是Android应用程序的核心组件之一,它具有生命周期,包括以下方法:- onCreate():当Activity被创建时调用,主要用于进行初始化操作。
- onStart():当Activity即将变为可见状态时调用。
- onResume():当Activity获得焦点并开始活动时调用。
- onPause():当Activity失去焦点但仍然可见时调用,通常用于保存数据或停止动画等操作。
- onStop():当Activity不再可见时调用,可以在此方法中释放资源。
- onDestroy():当Activity被销毁时调用,用于释放占用的资源。
2. 请解释一下Android中的四大组件。
Android中的四大组件是指Activity、Service、Broadcast Receiver和Content Provider。
- Activity:用于提供用户界面,用户可以与之进行交互。
- Service:在后台执行长时间运行的任务,与Activity无交互。
- Broadcast Receiver:监听系统广播,响应特定的广播消息。
- Content Provider:用于不同应用程序之间共享数据,提供对数据的增删改查操作。
3. 请介绍一下Android中的线程间通信方式。
Android中实现线程间通信的方式有多种,包括:- Handler:通过发送消息和处理消息来实现线程间通信。
- runOnUiThread():在主线程中更新UI。
- AsyncTask:用于在后台执行耗时操作,并在主线程更新UI。
- BroadcastReceiver:通过广播机制实现跨组件的通信。
android lifecycle实现原理
android lifecycle实现原理Android生命周期是指Android应用程序在启动、运行、暂停、停止、销毁等不同的状态下所经历的一系列过程。
充分理解Android 生命周期对于开发高质量、稳定的Android应用程序至关重要。
了解Android生命周期实现的原理,有助于我们更好地掌握Android开发。
1. Activity 生命周期Activity是Android中最基本的组件之一,它是用户交互的主要场所。
Activity生命周期是Android应用程序的核心,它包括启动、暂停、停止、恢复、重新创建和销毁等不同的状态。
具体来说,Activity生命周期分为以下几个步骤:a. onCreate():Activity第一次创建时调用,用来初始化Activity中的各种组件,如布局、数据等。
b. onStart():Activity即将可见时调用,但还没有获取用户的焦点,因此不会接收用户输入。
c. onResume():Activity已经获取了用户焦点,处于onResume 状态,此时用户可以立即输入并与Activity进行交互。
d. onPause():Activity因某种原因而失去了焦点,但是仍然可见。
通常在此处进行一些数据的保存和清理工作。
e. onStop():Activity完全被另一个Activity所覆盖或当用户按下Home键时,Activity会进入此状态,不再可见。
f. onRestart():Activity重新进入可见状态,通常发生在用户按下Back键后重新返回到该Activity时。
g. onDestroy():当Activity被销毁时,该方法被调用。
在此处进行一些善后工作,例如释放资源和取消注册广播等。
2. Service 生命周期Service是一种后台运行的组件,与Activity不同的是,它没有用户界面,只有后台任务。
Service生命周期可以分为以下步骤:a. onCreate():当Service第一次创建时,该方法会被调用。
android lifecycle用法 -回复
android lifecycle用法-回复Android生命周期是指一个Android应用程序从启动、运行到结束的整个过程。
它的理解对于Android开发者来说至关重要,因为它决定了应用程序在各种情况下的行为和状态管理。
1. 什么是Android生命周期?Android生命周期是指一个应用程序在用户与其进行交互时的不同状态和行为。
它由一系列的事件和方法组成,这些事件和方法负责处理应用程序的不同阶段和状态。
2. 生命周期的不同阶段有哪些?Android的生命周期可以分为以下几个阶段:- 创建阶段:应用程序正在创建时的状态。
- 启动阶段:应用程序正在启动时的状态。
- 运行阶段:应用程序正在运行时的状态。
- 暂停阶段:应用程序因为用户交互被暂停时的状态。
- 停止阶段:应用程序因为被调用而被停止时的状态。
- 销毁阶段:应用程序被销毁时的状态。
3. 生命周期中的各个方法有什么作用?在不同的生命周期阶段,Android提供了一些方法来管理应用程序的状态和行为。
这些方法包括:- onCreate():应用程序在创建时调用的方法,用于初始化应用程序的基本设置。
- onStart():应用程序在启动时调用的方法,用于准备应用程序的界面。
- onResume():应用程序在恢复运行时调用的方法,用于恢复应用程序的状态。
- onPause():应用程序在被暂停时调用的方法,用于保存应用程序的状态。
- onStop():应用程序在被停止时调用的方法,用于清理应用程序的资源。
- onDestroy():应用程序在被销毁时调用的方法,用于释放应用程序的资源。
4. 生命周期的触发条件是什么?Android的生命周期方法是由系统自动调用的,触发条件包括:- 创建阶段:应用程序被创建。
- 启动阶段:应用程序被启动。
- 运行阶段:应用程序处于前台运行。
- 暂停阶段:应用程序被暂停,例如接听电话等。
- 停止阶段:应用程序被其他应用程序覆盖或调用而停止。
android lifecycleeventobserver 用法
android lifecycleeventobserver 用法全文共四篇示例,供读者参考第一篇示例:Android的生命周期是指一个Activity或者Fragment从创建到销毁的过程,其中包括了一系列的事件。
为了更好地管理这些生命周期事件,Android提供了一个LifecycleEventObserver接口。
本文将介绍Android中LifecycleEventObserver的用法。
我们需要创建一个实现LifecycleEventObserver接口的类,这个类用来监听生命周期事件的发生。
以下是一个简单的示例代码:```javapublic class MyObserver implements LifecycleEventObserver {@Overridepublic void onStateChanged(@NonNull LifecycleOwner source, @NonNull Lifecycle.Event event) {switch (event) {case ON_CREATE:// 处理Activity或者Fragment的创建事件break;case ON_START:// 处理Activity或者Fragment的启动事件break;case ON_RESUME:// 处理Activity或者Fragment的恢复事件break;// 其他生命周期事件的处理}}}```private MyObserver myObserver;myObserver = new MyObserver();getLifecycle().addObserver(myObserver);}在上面的代码中,我们在Activity的onCreate方法中注册了MyObserver,并且在Activity销毁时移除了Observer。
这样就可以监听Activity或者Fragment的生命周期事件了。
AndroidService生命周期详解
AndroidService⽣命周期详解引⾔应⽤程序组件有⼀个⽣命周期——⼀开始Android实例化他们响应意图,直到结束实例被销毁。
在这期间,他们有时候处于激活状态,有时候处于⾮激活状态;对于活动,对⽤户有时候可见,有时候不可见。
组件⽣命周期将讨论活动、服务、⼴播接收者的⽣命周期——包括在⽣命周期中他们可能的状态、通知状态改变的⽅法、及这些状态的组件寄宿的进程被终结和实例被销毁的可能性。
上篇Android开发之旅:组件⽣命周期(⼀)讲解了论活动的⽣命周期及他们可能的状态、通知状态改变的⽅法。
本篇将介绍服务和⼴播接收者的⽣命周期:服务⽣命周期⼴播接收者⽣命周期1、服务⽣命周期⼀个服务可以⽤在两个⽅⾯:它可以启动且允许⼀直运⾏直到有⼈停⽌它,或者它⾃⼰停⽌。
在这种模式,通过调⽤Context.startService()启动服务及通过调⽤ Context.stopService()停⽌服务。
服务也可以通过调⽤Service.stopSelf()或 Service.stopSelfResult()停⽌⾃⼰。
仅需要调⽤⼀次stopService()停⽌服务,⽽不管调⽤ startService()了多少次。
通过使⽤相关接⼝可以编程地操作服务。
客户端建⽴与Service对象的⼀个连接及使⽤该连接调⼊服务。
连接通过调⽤Context.bindService()建⽴,通过调⽤Context.unbindService()关闭。
多个客户端可以绑定到同⼀个服务。
如果服务尚未启动,bindService()可以选择启动它。
这两种模式并不是完全分离的。
你可以绑定到⼀个⽤startService()启动的服务。
例如,⼀个后台⾳乐服务可以通过使⽤定义了⾳乐播放的 Intent对象调⽤startService()启动。
直到后来,⽤户可能想对播放器做⼀些控制或者获取当前歌曲的⼀些信息,⼀个活动将调⽤ bindService()与服务建⽴连接。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Android生命周期详解在Android 中,多数情况下每个程序都是在各自独立的Linux 进程中运行的。
当一个程序或其某些部分被请求时,它的进程就“出生”了;当这个程序没有必要再运行下去且系统需要回收这个进程的内存用于其他程序时,这个进程就“死亡”了。
可以看出,Android 程序的生命周期是由系统控制而非程序自身直接控制。
这和我们编写桌面应用程序时的思维有一些不同,一个桌面应用程序的进程也是在其他进程或用户请求时被创建,但是往往是在程序自身收到关闭请求后执行一个特定的动作(比如从main 函数中return)而导致进程结束的。
要想做好某种类型的程序或者某种平台下的程序的开发,最关键的就是要弄清楚这种类型的程序或整个平台下的程序的一般工作模式并熟记在心。
在Android 中,程序的生命周期控制就是属于这个范畴——我的个人理解:)在Android 系统中,当某个activity调用startActivity(myIntent) 时,系统会在所有已经安装的程序中寻找其intent filter 和myIntent 最匹配的一个activity,启动这个进程,并把这个intent 通知给这个activity。
这就是一个程序的“生”。
比如我们在Home application 中选择“Web browser”,系统会根据这个intent 找到并启动Web browser 程序,显示Web browser 的一个activity 供我们浏览网页(这个启动过程有点类似我们在在个人电脑上双击桌面上的一个图标,启动某个应用程序)。
在Android 中,所有的应用程序“生来就是平等的”,所以不光Android 的核心程序甚至第三方程序也可以发出一个intent 来启动另外一个程序中的一个activity。
Android 的这种设计非常有利于“程序部件”的重用。
一个Android 程序的进程是何时被系统结束的呢?通俗地说,一个即将被系统关闭的程序是系统在内存不足(low memory)时,根据“重要性层次”选出来的“牺牲品”。
一个进程的重要性是根据其中运行的部件和部件的状态决定的。
各种进程按照重要性从高到低排列如下:1. 前台进程。
这样的进程拥有一个在屏幕上显示并和用户交互的activity 或者它的一个IntentReciver 正在运行。
这样的程序重要性最高,只有在系统内存非常低,万不得已时才会被结束。
2. 可见进程。
在屏幕上显示,但是不在前台的程序。
比如一个前台进程以对话框的形式显示在该进程前面。
这样的进程也很重要,它们只有在系统没有足够内存运行所有前台进程时,才会被结束。
3. 服务进程。
这样的进程在后台持续运行,比如后台音乐播放、后台数据上传下载等。
这样的进程对用户来说一般很有用,所以只有当系统没有足够内存来维持所有的前台和可见进程时,才会被结束。
4. 后台进程。
这样的程序拥有一个用户不可见的activity。
这样的程序在系统内存不足时,按照LRU 的顺序被结束。
5. 空进程。
这样的进程不包含任何活动的程序部件。
系统可能随时关闭这类进程。
从某种意义上讲,垃圾收集机制把程序员从“内存管理噩梦”中解放出来,而Android 的进程生命周期管理机制把用户从“任务管理噩梦”中解放出来。
我见过一些Nokia S60 用户和Windows Mobile 用户要么因为长期不关闭多余的应用程序而导致系统变慢,要么因为不时查看应用程序列表而影响使用体验。
Android 使用Java 作为应用程序API,并且结合其独特的生命周期管理机制同时为开发者和使用者提供最大程度的便利。
Activity lifecycleActivity有三种基本状态:1.Active:处于屏幕前景(当前task的栈顶Activity处于Active状态),同一时刻只能有一个Activity处于Active状态;2.Paused状态:处于背景画面画面状态,失去了焦点,但依然是活动状态;3.stopped:不可见,但依然保持所有的状态和内存信息。
可以调用finish()结束处理Paused或者stopped状态的Activity。
Activity的生命周期可以分为三组:保存Activity状态To capture that state before the activity is killed, you can implementan onSaveInstanceState() method for the activity. Android calls this method before making the activity vulnerable to being destroyed — that is, before onPause() is called. It passes the method a Bundle object where you can record the dynamic state of the activity as name-value pairs. When the activity is again started, the Bundle is passed bothto onCreate() and to a method that's calledafter onStart(),onRestoreInstanceState(), so that either or both of them can recreate the captured state.Unlike onPause() and the other methods discussedearlier, onSaveInstanceState() and onRestoreInstanceState()are not lifecycle methods. They are not always called. Because onSaveInstanceState() is not always called, you should use it only to record the transient state of the activity, not to store persistent e onPause() for that purpose instead.启动另一个Activity的过程∙The current activity's onPause() method is called.∙Next, the starting activity's onCreate(), onStart(), and onResume() methods are called in sequence.∙Then, if the starting activity is no longer visible on screen, its onStop() method is called. service生命周期A service can be used in two ways:∙It can be operated programmatically using an interface that it defines and exports.Clients establish a connection to the Service object and use that connection to call into the service. The connection is established by calling Context.bindService(), and is closed by calling Context.unbindService(). Multiple clients can bind to thesame service. If the service has not already been launched, bindService() canoptionally launch it.相关的方法:voidonCreate()void onStart(Intent intent)void onDestroy()The onCreate() and onDestroy() methods are called for all services, whether they're started by Context.startService() or Context.bindService().However, onStart() is called only for services started by startService().If a service permits others to bind to it, there are additional callback methods for it to implement:IBinderonBind(Intent intent)booleanonUnbind(Intent intent)void onRebind(Intent intent)Broadcast receiver lifecycle只有一个方法:voidonReceive(Context curContext, Intent broadcastMsg)A process with an active broadcast receiver is protected from being killed. But a process with only inactive components can be killed by the system at any time, when the memory it consumes is needed by other processes.This presents a problem when the response to a broadcast message is time consuming and, therefore, something that should be done in a separate thread, away from the main thread where other components of the user interface run. If onReceive() spawns the thread and then returns, the entire process, including the new thread, is judged to be inactive (unless other application components are active in the process), putting it in jeopardy of being killed.The solution to this problem is for onReceive() to start a service and let the service do the job, so the system knows that there is still active work being done in the process.进程的生命周期Android根据其重要性在内存不足的时候移去重要性最低的进程。