`

Activity声明周期总结

 
阅读更多
一、利用Activity 生命周期
1、使用onSaveInstanceState()将Activity状态保存至Bundle中,最好在onPanse()方法中进行提交与保存,
当之后重新返回Activity时,Bundle对象被传入onCreate()方法中;

2、你也可以使用onRestoreInstanceState()方法在onStart()调用之后读取Bundle对象信息;

3、在Activity栈中,可能存在多个Activity的实例,我们要注意每个Activity的生命周期问题;

4、Acivity替换分为两种:

(1)显示一次永远被“主菜单”界面Activity代替;
使用startActivity()和finish()
(2)Activity跳转可能是暂时的;

使用startActivityForResult()和onActivityResult()


二、Activity 生命周期中的各个方法描述如下:

  1、onCreate() 当 Activity 首次创建时调用, 这里通常的工作是创建视图, 绑定数据到列表等。 这个方法还有一个 Bundle 参数, 如果这个 Activity 之前由冻结的状态, 这个状态将包含在里面。 之后, 通常会接着调用 onStart() 方法。

  2、onRestart() Activity 已经被停止, 在其被重新开始之前调用。 接下来回调用 onStart() 方法。

  3、onStart() 当 Activity 变到用户可见时调用, 接下来如果 Activity 变成不可见的话, 将会调用 onStop() , 否则将调用 onResume() 。

  4、onResume() 当 Activity 开始能和用户交互时调用, 此时的 Activity 位于栈顶, 接下来通常会调用 onPause() 。

  5、onPause() 当系统准备开始一个新的 Activity 或者重置一个已有的 Activity 时调用。 通常需要在这里进行保存数据、 停止动画以及其它占用 CPU 资源的活动等。 这个方法完成之前, 下一个 Activity 不会继续, 所以这个方法的必须较快的完成。 接下来如果 Activity 又回到栈顶将调用 onResume() , 如果 Activity 变的不可见, 将调用 onStop() 。

  6、onStop() 当 Activity 不可见时调用, 如果 Activity 变的可见, 将会调用 onRestart() , 如果 Activity 将销毁, 调用 onDestroy() 。

  7、onDestroy() 这是 Activity 被销毁之前最后一次调用, 可能是调用了 Activity 的 finish() 方法, 或者系统要回收资源, 这两者可以通过 isFinishing() 方法进行区别。


三、每一个 Activity 都有四个状态, 它们分别是:

  1、当 Activity 位于屏幕的最前面(栈顶),称之为 运行(活动)状态:

  2、当 Activity 失去焦点, 但是依旧可见, 比如被非全屏的对话框遮住部分, 称之为 暂停状态 , 暂停的 Activity 依然是活动的, 但是当系统内存严重不足时, 有可能被系统结束;

  3、当 Activity 完全不可见时, 称之为 停止状态 , 这时 Activity 依然保持其状态以及成员信息, 不过由于此时 Activity 对用户不可见, 当系统其它地方需要内存时, 经常会被结束;

  4、当 Activity 由不可见变成可见时, 称之为 重启状态 , 这时 Activity 必须迅速恢复它以前的状态。

转载地址:http://www.cnblogs.com/beginor/archive/2012/11/12/2766900.html
分享到:
评论

相关推荐

    Android基础系列的Activity

    总结起来,Android的Activity是构建用户界面和实现应用逻辑的重要部分。理解和熟练掌握Activity的生命周期、Intent的使用、Activity间的通信、栈管理、多窗口支持、Activity过渡动画以及配置变化处理,是Android...

    Android之Activity应用小例子

    总结来说,“Android之Activity应用小例子”主要涵盖了Activity的基本概念、生命周期、布局加载、Intent通信以及Activity间的回退栈管理。通过学习这个小例子,开发者可以对Android应用的核心组成部分Activity有更...

    Activity和Service

    总结来说,Activity和Service是Android应用程序的核心组成部分,理解它们的工作原理和生命周期对于编写高效、稳定的Android应用至关重要。开发者需要熟练掌握如何启动、管理Activity以及如何启动和绑定Service,以...

    FragmentActivity源码下载

    为了支持Fragment,`FragmentActivity`重新实现了许多生命周期方法,如`onCreate()`、`onStart()`、`onResume()`等。这些方法在Activity的生命周期中被调用时,也会相应地通知到相关的Fragment实例。 ##### 4.3 ...

    Android Service与Activity交互

    此外,为了优化用户体验,我们需要注意在Activity的生命周期方法中正确管理BroadcastReceiver的注册和注销。例如,在onResume()中注册Receiver,在onPause()或onStop()中注销,防止内存泄漏。 总结起来,这个示例...

    深入理解Activity

    总结,深入理解Activity,不仅需要掌握其基本配置,还要熟悉生命周期回调,理解启动模式,熟练运用Intent进行通信,以及妥善处理配置变更带来的影响。这都是构建高效、稳定Android应用的基础。通过不断实践和学习,...

    Activity尾声

    总结来说,"Activity尾声"涵盖了Activity生命周期的结束阶段,特别是如何在onPause()、onStop()和onDestroy()中有效地管理和释放资源。理解这些概念对于创建高效、无内存泄漏的Android应用至关重要。开发者需要熟悉...

    android Fragment Activity

    总结起来,"android Fragment Activity"涉及的是如何在Android应用中结合使用Fragment和Activity来构建用户界面,通过理解它们的生命周期、交互方式以及布局管理,开发者能够创建出高效且用户体验良好的应用程序。...

    DefaultActivity

    在AndroidManifest.xml文件中,开发者会声明应用中存在的所有Activity,并指定哪些可以作为启动点。 "DefaultActivity"通常会被设置为应用程序的启动Activity,这通过在AndroidManifest.xml文件中的`...

    android生命周期

    总结,理解并掌握Activity的生命周期对于开发高效、稳定的Android应用至关重要。通过代码示例和日志跟踪,开发者能更好地理解状态转换,从而优化用户体验并有效管理应用资源。在实际开发中,应充分利用生命周期回调...

    activity之间的数据传递(SeekBaar版)

    - 需要在AndroidManifest.xml中声明要启动的Activity,并指定对应的Intent过滤器。 - 如果使用`startActivityForResult()`, 需要确保接收结果的Activity在同一个应用内。 总结,Activity之间的数据传递是Android...

    如何启动另外一个应用的任意Activity

    总结,启动另一个应用的任意Activity主要依赖于Intent对象,通过设置Action、Data、Category等属性,配合startActivity()或startActivityForResult()方法实现。在实际开发中,理解并熟练运用Intent机制是构建Android...

    Android receiver 多次启动相同Activity

    总结起来,避免BroadcastReceiver多次启动相同Activity的关键在于正确处理广播接收和Activity的启动逻辑,通过上述策略可以有效地优化广播接收行为,提高应用的性能和用户体验。在实际开发中,应结合具体场景选择...

    android activity跳转 Application Context实现共享数据

    总结,Activity跳转、Intent使用、startActivityForResult/onActivityResult以及通过Application Context实现共享数据是Android开发中的核心知识点。理解并熟练运用这些概念,可以帮助开发者构建功能丰富且健壮的...

    040集-启动带两个Action值的预定义Activity

    在Activity的清单文件中,我们可以定义一个IntentFilter,声明Activity可以处理哪些Action。这样,当系统收到一个Intent时,它会根据IntentFilter找到合适的Activity启动。 总结来说,启动带有两个Action值的预定义...

    Activity的使用初步

    总结来说,Activity和Layout是Android应用开发的基础,理解它们的使用对于构建功能完备、用户友好的应用至关重要。开发者需要掌握Activity的生命周期管理、启动模式选择、Intent的使用,以及如何通过XML布局来设计和...

    activity之间的通信

    Intent是Android系统用于启动另一个Activity或服务的意图声明。它包含了目标组件的信息,如Action(操作)、Data(数据)、Category(类别)等。在Activity之间传递数据时,可以使用Intent的putExtra()方法添加额外...

    android中activity和service的交互

    总结来说,Android中的Activity和Service通过绑定的方式可以实现高效、灵活的交互,提供丰富的功能。开发者需要理解它们各自的生命周期,掌握绑定和解绑的时机,以及选择合适的通信机制,以保证应用的稳定性和性能。...

    显示Intent和隐式Intent启动Activity的示例

    启动Activity时,需要注意生命周期的变化,比如在启动新Activity之前,当前Activity的状态应该得到妥善保存,以防意外退出或系统回收。 8. **Intent Resolution**: Android系统会根据Intent的元数据进行匹配,...

    四大组件 Activity Service content provider broadcast receiver

    - **生命周期方法:** Activity具有自己的生命周期,包括创建(`onCreate()`)、启动(`onStart()`)、恢复(`onResume()`)等阶段的方法调用,开发者可以通过这些方法了解Activity的状态变化并做出相应的处理。...

Global site tag (gtag.js) - Google Analytics