activity是单独的,用于处理用户操作。几乎所有的activity都要和用户打交道,所以activity类创建了一个窗口,开发人员可以通过setContentView(View)接口把UI放到activity创建的窗口上,当 activity指向全屏窗口时,也可以用其他方式实现:作为漂浮窗口(通过windowIsFloating的主题集合),或者嵌入到其他的 activity(使用ActivityGroup)。大部分的Activity子类都需要实现以下两个接口:
onCreate(Bundle)接口是初始化activity的地方. 在这儿通常可以调用setContentView(int)设置在资源文件中定义的UI, 使用findViewById(int) 可以获得UI中定义的窗口.
onPause()接口是使用者准备离开activity的地方,在这儿,任何的修改都应该被提交(通常用于ContentProvider保存数据).
为了能够使用Context.startActivity(),所有的activity类都必须在AndroidManifest.xml文件中定义有相关的“activity”项。
activity类是Android 应用生命周期的重要部分。
Activity生命周期
在系统中的Activity被一个Activity栈所管理。当一个新的Activity启动时,将被放置到栈顶,成为运行中的Activity,前一个Activity保留在栈中,不再放到前台,直到新的Activity退出为止。
Activity有四种本质区别的状态:
在屏幕的前台(Activity栈顶),叫做活动状态或者运行状态(active or running)
如果一个Activity失去焦点,但是依然可见(一个新的非全屏的Activity 或者一个透明的Activity 被放置在栈顶),叫做暂停状态(Paused)。一个暂停状态的Activity依然保持活力(保持所有的状态,成员信息,和窗口管理器保持连接),但是在系统内存极端低下的时候将被杀掉。
如果一个Activity被另外的Activity完全覆盖掉,叫做停止状态(Stopped)。它依然保持所有状态和成员信息,但是它不再可见,所以它的窗口被隐藏,当系统内存需要被用在其他地方的时候,Stopped的Activity将被杀掉。
如果一个Activity是Paused或者Stopped状态,系统可以将该Activity从内存中删除,Android系统采用两种方式进行删除,要么要求该Activity结束,要么直接杀掉它的进程。当该Activity再次显示给用户时,它必须重新开始和重置前面的状态。
下面的图显示了Activity的重要状态转换,矩形框表明Activity在状态转换之间的回调接口,开发人员可以重载实现以便执行相关代码,带有颜色的椭圆形表明Activity所处的状态。
activity 生命周期(lifecycle)
在上图中,Activity有三个关键的循环:
整个的生命周期,从onCreate(Bundle)开始到onDestroy()结束。Activity在onCreate()设置所有的“全局”状态,在onDestory()释放所有的资源。例如:某个Activity有一个在后台运行的线程,用于从网络下载数据,则该Activity可以在onCreate()中创建线程,在onDestory()中停止线程。
可见的生命周期,从onStart()开始到onStop()结束。在这段时间,可以看到Activity在屏幕上,尽管有可能不在前台,不能和用户交互。在这两个接口之间,需要保持显示给用户的UI数据和资源等,例如:可以在onStart中注册一个IntentReceiver来监听数据变化导致 UI的变动,当不再需要显示时候,可以在onStop()中注销它。onStart(),onStop()都可以被多次调用,因为Activity随时可以在可见和隐藏之间转换。
前台的生命周期,从onResume()开始到onPause()结束。在这段时间里,该Activity处于所有 Activity的最前面,和用户进行交互。Activity可以经常性地在resumed和paused状态之间切换,例如:当设备准备休眠时,当一个 Activity处理结果被分发时,当一个新的Intent被分发时。所以在这些接口方法中的代码应该属于非常轻量级的。
Activity的整个生命周期都定义在下面的接口方法中,所有方法都可以被重载。所有的Activity都需要实现 onCreate(Bundle)去初始化设置,大部分Activity需要实现onPause()去提交更改过的数据,当前大部分的Activity也需要实现onFreeze()接口,以便恢复在onCreate(Bundle)里面设置的状态。
public class Activity extends ApplicationContext {
protected void onCreate(Bundle icicle);
protected void onStart();
protected void onRestart();
protected void onResume();
protected void onPause();
protected void onStop();
protected void onDestroy();
}
- 大小: 64.6 KB
分享到:
相关推荐
Android中的Activity生命周期是每个Android开发者必须深入理解和掌握的关键概念。Activity是Android应用程序的基本构建块,它代表用户界面的一个屏幕。了解其生命周期对于优化应用性能、处理资源管理以及确保正确...
理解Fragment的生命周期对于高效且稳定地构建Android应用至关重要。本文将深入探讨Fragment的生命周期,帮助开发者更好地理解和掌握这一核心概念。 Fragment的生命周期与Activity紧密相关,因为它总是嵌套在某个...
在Android开发中,Activity是...理解并熟练掌握Activity生命周期对于开发高效、响应式的Android应用至关重要。通过正确处理生命周期事件,开发者可以确保应用在各种场景下都能提供良好的用户体验,并有效地管理资源。
理解Activity的生命周期是每个Android开发者必须掌握的关键概念。本文将深入解析Android Activity的生命周期,并通过实例演示来帮助读者更好地理解和掌握。 Activity的生命周期由一系列回调方法组成,这些方法在...
总结来说,Intent是Android组件间通信的核心,它的生命周期与Activity紧密关联。理解和熟练运用Intent对于优化用户体验和提高代码效率至关重要。在开发中,我们应充分利用Intent的特性,实现高效、灵活的组件交互。
同时,讨论了Intent的概念,它是Android系统中不同组件间通信的重要桥梁。此外,还涵盖了多Activity应用的设计模式和Back Stack的管理。 第15章:服务(Service)与广播接收者(BroadcastReceiver) 在这一章,读者...
《Android典型技术模块开发详解》这本书是为初入Android开发领域的工作者量身打造的指南,旨在帮助读者深入理解和掌握Android各个关键模块的开发技术。在本文中,我们将详细探讨书中可能涉及的重要知识点,并尽可能...
书中提供的源码是学习Android编程的重要参考资料,它能让读者更直观地理解书中的概念和实践技巧。以下是对这些源码及Android核心技术的详细解析: 1. **Android基础知识**:从第1章开始,源码可能包括对Android开发...
### Android之Activity的生命周期与Activity间的跳转及数据传递 #### Activity的概念与作用 在Android应用开发中,`Activity`是四大组件之一,主要负责管理应用程序的用户界面(UI)。一个Activity代表一个屏幕上的...
第14章:此章可能讲解了Android服务(Service)的概念,服务的生命周期,以及如何启动和绑定服务。还可能涵盖了IntentService的使用,以及后台任务的执行策略。 第11章:可能涉及到了广播接收器(BroadcastReceiver...
6. **生命周期管理**:在 Android 中,Activity 和 Fragment 有其生命周期,RxJava 的 takeUntil 和 takeWhile 操作符可以帮助开发者更好地管理订阅与取消订阅,防止内存泄漏。 7. **热点和冷bservable**:理解热点...
本文详细介绍了 Android 开发的基本概念和流程,涵盖了开发环境的搭建(Android Studio、SDK、NDK、Gradle),应用的基本结构(Activity、Service、Broadcast Receiver、Content Provider),应用生命周期及其常见...
在Android开发过程中,理解应用程序如何启动及Activity的生命周期是非常重要的。这不仅有助于我们更好地管理程序的状态,还能帮助我们在遇到内存泄漏等问题时进行快速定位和解决。 #### ActivityThread `...
本文实例分析了Android编程中activity的完整生命周期。分享给大家供大家参考,具体如下: android中 activity有自己的生命周期,对这些知识的学习可以帮助我们在今后写程序的时候,更好的理解其中遇到的一些错误。这...
【Android系统的开发综述】则可能涵盖了Android应用开发的基本流程,包括Android Studio的使用、项目结构、布局设计、Activity生命周期等关键概念。这部分内容对于初学者来说是至关重要的,它将引导开发者进入...
"android 项目开发详解代码" 提供了一套完整的开发实例,旨在帮助学习者深入理解Android应用的生命周期、用户界面设计、数据存储、网络通信等核心概念。这份教材通过实际的代码示例,使得理论知识与实践相结合,有助...
Android的生命周期管理是开发者必须理解的关键概念,理解何时创建、启动、暂停、恢复或销毁Activity和服务至关重要,这对于优化资源使用和避免内存泄漏至关重要。 在数据存储方面,Android提供了SQLite数据库、...
1. **Activity生命周期**:Activity是Android应用程序中的用户界面组件,其生命周期包括了创建、启动、运行、暂停、停止和销毁等状态。理解并熟练掌握Activity的生命周期管理是Android开发的基础。 2. **Intent与...
进一步深入,你将接触到Android的组件通信机制,比如使用Fragment进行屏幕分片,以及使用FragmentTransaction管理它们的生命周期。对于多模块项目,了解依赖注入框架如Dagger2或Hilt也很重要,它们可以帮助减少代码...