当前位置:首页 » 安卓系统 » android应用生命周期

android应用生命周期

发布时间: 2025-05-17 16:53:16

1. 如何管理Android中Activity的生命周期

一、基础

1.1自己创建的activity必须要继承类Activity(或其子类)。在activity里,为了实现activity各种状态的切换,你必须实现指定的回调方法。以下是最为重要的两个回调方法

onCreate():

这是必须实现的回调方法,启动一个 activity时会首先调用此方法。因此,在onCreate()的方法体里,你应该初始化该activity必要的控件。值得注意的是,在这里你必须调用setContentView(View view)方法去呈现用户的界面。

onPause():

在用户将要离开activity时调用此方法(指的是此时activity处于半透明状态且没有获取用户的焦点)。通常在这样的状态下,你需要处理用户数据的提交、动画处理等操作。

1.2销毁activity

你可以调用finish()方法去销毁一个activity。同样得,你可以调用finishActivity()方法去销毁一个你刚刚启动的activity。

tips:

在多数情况下,你是不需要显式地调用finish…()方法去销毁一个activity。在将要讨论到的activity生命周期里,你可以知道,Android系统会为你管理activity的生命周期,所以你并不需要显式销毁activity(即调用finish类方法)。显式地调用finish类方法,会对用户的体验产生不利的影响,除非你确实是不希望用户返回到此activity(界面),才去显式调用finish类方法。

二、认识activity的生命周期

2、1

Activity的生命周期对它的任务、backstack和与此有关联的activity有着直接的影响。因此想开发出一个健壮的有弹性的Android程序,你需要学会如何去管理activity的生命周期(即调用各种回调方法)。

activity的生命周期主要包含一些三种状态:

(1)运行态(Resumedstate)

此时Activity程序显示在屏幕前台,并且具有焦点,可以与用户的操作进行交互,如向用户提供信息、捕获用户单击按钮的事件并做处理。

(2)暂停态(PausedState)

此时Activity程序失去了焦点,并被其他处于运行态的otherActivity取代在屏幕显示,但otherActivity程序并没有覆盖整个屏幕或者具有半透明的效果—此状态即为暂停态。处于暂停态的Activity仍然对用户可见,并且是完全存活的(此时Activity对象存留在内存里,保留着所有状态与成员信息并保持与窗口管理器的连接)。如果系统处于内存不足的情况下,会杀死这个Activity。

(3)停止态(StoppedState)

当Activity完全被另一个otherActivity覆盖时(此时otherActivity显示在屏幕前台),则处于停止态。处于停滞态的Activity依然是存活的(此时Activity对象依然存留在内存里,保留着所有的状态和与成员信息,但没有与窗口管理器保持连接),而且它对用户是不可见的,如果其他地方需要内存,系统会销毁这个Activity。

处于暂停态(PausedState)或者停止态(Stopped
State)的Activity,系统可以通过调用finish()方法或者直接终止它的进程来销毁此Activity(从内存中清楚此Activity对象)。被finish()或者销毁的Activity再重新打开时,是需要再次初始化此Activity的。

2、2

当一个Activity从一种状态转到另一种状态时,会通过调用回调方法来通知这种变化。这些回调方法都是可以重写的,你可以根据程序的的需要来选择重写对应的回调方法。以下列出了Activity生命周期里的基本回调方法:

public class ExampleActivity extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// The activity is being created.

}

@Override

protected void onStart() {

super.onStart();

// The activity is about to become visible.

}

@Override

protected void onResume() {

super.onResume();

// The activity has become visible (it is now
"resumed").

}

@Override

protected void onPause() {

super.onPause();

// Another activity is taking focus (this activity is
about to be "paused").

}

@Override

protected void onStop() {

super.onStop();

// The activity is no longer visible (it is now
"stopped")

}

@Override

protected void onDestroy() {

super.onDestroy();

// The activity is about to be destroyed.

}

}

笔记:在方法体里,必须先调用父类对应的实现方法super.Xxx(),再执行其他的操作(如上面代码所示)。为了习惯,下面也提供一些代码来测试一些这些方法的使用,在博客的最后面。

总的来说,这些回调方法定义了Activity整个生命周期。在生命周期里通过重写这些回调方法,,你可以监控以下下三个嵌套的方法循环。

完整存活的时间:

Activity的完整存活的时间是自第一次调用onCreate()开始,直至调用onDestroy()为止。Activity在onCreate()中设置所有“全局”状态以完成初始化,而在onDestroy()中释放所有系统资源。例如,如果Activity有一个线程在后台运行从网络下载数据,它会在onCreate()创建线程,而在 onDestroy()销毁线程。

可见状态的时间:

Activity的可见状态是自onStart()调用开始直到相应的onStop()调用结束。在此期间,用户可以在屏幕上看到Activity,尽管它也许并不是位于前台或者也不与用户进行交互。在这两个方法之间,我们可以保留用来向用户显示这个Activity所需的资源。例如,当用户不再看见我们显示的内容时,我们可以在onStart()中注册一个BroadcastReceiver来监控会影响UI的变化,而在onStop()中来注消。onStart() 和 onStop() 方法可以随着应用程序是否为用户可见而被多次调用。

显示在前台的时间:

Activity的前台显示是自onResume()调用起,至相应的onPause()调用为止。在此期间,Activity位于前台最上面并与用户进行交互。Activity会经常在暂停和恢复之间进行状态转换——例如当设备转入休眠状态或者有新的Activity启动时,将调用onPause() 方法。当Activity获得结果或者接收到新的Intent时会调用onResume() 方法。

2. 窥探Android应用程序管理的核心技术,AMS原理解析

在Android开发中,Activity Manager Service(AMS)扮演着极其关键的角色,它管理着应用程序的生命周期与任务栈,同时处理应用程序间的交互。本文旨在探讨AMS的核心原理,并通过代码示例进行解析。
AMS作为Android系统内的核心组件,负责执行关键任务,包括应用生命周期管理、任务栈操作以及应用间通信。其主要功能有以下几点。
### 应用程序生命周期管理
在Android开发中,每一个Activity都关联特定的生命周期方法,如onCreate()、onStart()、onResume()等。当用户启动或操作Activity时,AMS会调用相应的生命周期方法,实现状态转换与功能执行。例如,当用户启动MainActivity,AMS会依次调用onCreate()、onStart()和onResume()方法,反之,当用户返回或关闭MainActivity,AMS会调用onPause()、onStop()和onDestroy()方法,确保应用状态的正确维护。
### 任务栈管理
AMS通过管理任务栈来组织和显示应用界面。当用户点击启动SecondActivity,AMS会将其添加至任务栈的顶部。若SecondActivity已存在于任务栈中,AMS会将其移动至顶部并调用onNewIntent()方法,确保界面的更新与状态的同步。
### 应用程序间交互
在处理用户操作时,AMS会根据Intent信息查找合适的组件执行任务。遇到多个可执行组件时,AMS会显示选择框,让用户做出决策。若仅有一个组件可执行,AMS直接启动该组件,实现高效应用间的交互。
### 总结
理解AMS的工作原理对Android开发者至关重要,它有助于深入掌握Android系统的运行机制,从而编写出高效稳定的应用程序。通过了解AMS的核心功能与操作流程,开发者能够更有效地管理应用生命周期,优化用户体验与系统性能。

热点内容
凯酷2021选哪个配置 发布:2025-05-17 22:46:06 浏览:659
苹果好用的解压软件 发布:2025-05-17 22:42:23 浏览:381
我的世界服务器莫名崩溃 发布:2025-05-17 22:40:57 浏览:477
我的世界utc服务器ip 发布:2025-05-17 22:36:19 浏览:740
新闻压缩要素 发布:2025-05-17 22:22:11 浏览:118
耳机没有声音怎么办安卓 发布:2025-05-17 22:16:29 浏览:583
bc8android导航 发布:2025-05-17 22:15:50 浏览:639
什么配置的车标好 发布:2025-05-17 21:41:20 浏览:203
linux支持线程 发布:2025-05-17 21:26:14 浏览:184
元神队伍配置都由什么组成 发布:2025-05-17 21:20:18 浏览:477