`
liangoogle
  • 浏览: 278457 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

后台的Activity被系统回收怎么办:onSaveInstanceState

 
阅读更多

 

 当你的程序中某一个Activity A 在运行时中,主动或被动地运行另一个新的Activity B

  这个时候A会执行onSaveInstanceState();

 

B 完成以后又会来找A, 这个时候就有两种情况,一种是A被回收,一种是没有被回收,被回

  收的A就要重新调用onCreate()方法,不同于直接启动的是这回onCreate()里是带上参数

  savedInstanceState,没被收回的就还是onResume就好了。

savedInstanceState是一个Bundle对象,你基本上可以把他理解为系统帮你维护的一个Map对象。在onCreate()里你可能会用到它,如果正常启动onCreate就不会有它,所以用的时候要判断一下是否为空。

  Java代码

  1. if(savedInstanceState != null){

  2. long id = savedInstanceState.getLong("id");

  3. }

  if(savedInstanceState != null){

  long id = savedInstanceState.getLong("id");

  }

分享到:
评论

相关推荐

    Android_Activity的详细讲解

    #### 三、你后台的Activity被系统回收怎么办:onSaveInstanceState() 当Activity由于内存不足等原因被系统回收时,为了确保用户体验不受影响,可以在Activity的onSaveInstanceState()方法中保存关键数据。这些数据...

    从界面跳转后被系统Kill来看Activity的方法调用

    值得注意的是,系统并不总是保证`onDestroy()`会被调用,特别是在内存压力大的情况下,Activity可能直接被回收,而不会执行`onDestroy()`。 为了确保数据的持久化,开发者应该在`onPause()`或`onSaveInstanceState...

    Android常见面试题集.pdf

    6. **Activity被系统回收**:当后台Activity被回收时,可以通过onSaveInstanceState(Bundle outState)方法保存状态,在onCreate(Bundle savedInstanceState)或onRestoreInstanceState(Bundle savedInstanceState)中...

    activity生命周期

    - **onPause()**: 当Activity部分或全部被另一个Activity遮挡,或者系统需要执行短暂的任务时,会调用此方法。此时,应该保存一些关键数据,因为用户可能随时返回此Activity。 4. **停止(Stop)** - **onStop()...

    Android面试题整理精编版.doc

    如果后台的 Activity 由于某原因被系统回收,可以在被系统回收之前保存当前状态,使用 protected void onSaveInstanceState(Bundle outState) 方法来保存当前状态。除去了栈顶的 Activity,其它的 Activity 都有可能...

    android面试整理

    6. **Activity被回收**:当后台Activity被系统回收时,可通过`onSaveInstanceState()`和`onRestoreInstanceState()`保存和恢复状态。在onPause()中可以进行关键数据的保存,以应对被回收的情况。同时,可以通过使用...

    Android Activity生命周期Demo源码.rar

    此时应释放大部分资源,因为系统可能随时回收Activity。 5. **销毁(Destroying)**: - `onDestroy()`:Activity将要被销毁时调用,可能是系统内存不足,或者用户手动关闭。这是Activity生命周期的最后阶段,可以...

    安卓面试题

    6. **Activity回收与状态保存**:当Activity被系统回收时,可以重写`onSaveInstanceState(Bundle outState)`方法保存关键数据,然后在onCreate()或onRestoreInstanceState()中恢复。后台Activity由于内存不足可能被...

    Activity生命周期Demo

    - **销毁(Destroyed)**: 当Activity不再需要时,系统会调用`onDestroy()`,可能是用户手动关闭,或者系统因资源回收而销毁Activity。 2. **生命周期方法的使用** - 在`onCreate()`中,通常会进行UI初始化,如...

    联想与百度android面试题集

    当Activity进入后台并可能被系统回收时,可以通过实现onSaveInstanceState方法来保存关键状态数据。这有助于确保当Activity被重新创建时能够恢复到用户期望的状态。 #### 四、调用与被调用:Intent的作用 Intent是...

    android最新面试题

    3. **Activity状态保存**:当后台Activity被系统回收时,可以通过重写`onSaveInstanceState(Bundle outState)`来保存关键数据,系统会在回收前调用此方法。恢复时,重写`onRestoreInstanceState(Bundle ...

    102.Android面试之---讲一下你对Activity的了解(面试必问的).1

    为了优化系统资源,Android 系统会在内存紧张时回收后台 Activity。因此,开发者需要在 `onPause()` 或 `onStop()` 中保存关键数据,以防 Activity 被销毁。通常使用 `onSaveInstanceState(Bundle outState)` 来...

    深入理解Activity生命周期

    `onSaveInstanceState(Bundle outState)`方法会在Activity即将被销毁或暂停时调用,用于保存临时或非持久性数据,如UI的状态。如果Activity被重新创建(例如设备旋转),`onCreate(Bundle savedInstanceState)`和`...

    android面试宝典.doc

    六、后台 Activity 被系统回收 * 除了栈顶的 Activity,其他的 Activity 都可能在内存不足时被系统回收。 * Activity 越处于栈底,回收的可能性越大。 * 可以使用 onSaveInstanceState 方法来保存当前状态,以便在 ...

    生命周期管理:重置一个Activity

    首先,Activity的销毁通常发生在几种情况:用户按下Back键、Activity自身调用finish()方法、系统为了回收资源而关闭后台Activity,或者当设备屏幕旋转导致屏幕配置改变。在前两种情况中,Activity实例会被彻底销毁,...

    android Activity生命周期

    - 当系统需要回收资源时,可能会调用`onSaveInstanceState(Bundle outState)`,允许保存Activity的状态。这通常发生在`onPause()`之后,因为Activity可能不再可见,甚至可能被销毁。 - 如果Activity被彻底销毁,`...

    activity 生命周期

    - **后台进程(Background Process)**: 如果Activity被系统回收以释放内存,会先调用`onPause()`和`onStop()`,但不保证调用`onDestroy()`。当需要时,系统会重新创建Activity。 - **栈管理(Task Stack)**: ...

    Android常见面试题目汇总以及答案

    当用户按下Home键时,当前Activity被置于后台,onPause()和onStop()会被调用,但通常不会执行onDestroy(),除非系统需要回收资源。 7. **Activity的启动流程**: 启动一个Activity通常从Intent开始,经过Activity...

    最新最强的Android面试题

    - 当后台Activity被系统回收时,可以通过重写`onSaveInstanceState(Bundle outState)`方法来保存当前状态的关键数据。系统在销毁Activity前会调用此方法,将数据存入Bundle中。 - 之后,通过重写`...

Global site tag (gtag.js) - Google Analytics