`
zheyiw
  • 浏览: 1020076 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

关于Activity在后台被销毁的处理

阅读更多

如果一个APP在被转到了后台,就很有可能被系统回收,
当APP在后台被系统回收,再次打开APP的时候,会发生什么事情呢?(以下是个人测试得到)
1,一般所有能回收的Activity都会被回收, Application 也会销毁
2,会在一个新的进程中新建一个应用, 意味所有旧的变量,常量都不存在了 ,是所有哦!!! 
3,重新加载APP最后显示的Activity
4,这个时候点击返回键,会重新加载倒数第二个Activity, 以此类推...

我遇到的问题是保存在 全局变量 和 静态变量 都没有数据了

我要实现的效果是如果APP被后台回收,就重新打开应用, 实现如下:

1,定义一个基类BaseActivity 
2,除了程序入口的Activity 其他activity都继承BaseActivity
3,在BaseActivity的onCreate方法中判断必要的变量是否销毁,如果销毁了就调用
android.os.Process.killProcess(android.os.Process.myPid());
来结束整个应用

这样所有的activity都会被关闭,而程序入口的activity会重新加载,达到了重新加载的效果

为什么 killProcess 不会结束程序入库的activity呢?
分析如下: 
系统其实只是记录了APP中activity打开的顺序,当我们再次打开被系统回收的APP的时候APP中其实只有一个activity,当我面killProcess的时候,系统又会重新建一个线程去打开倒数第二个activity,依次类推
当打开程序入口的activity时,由于我们去没有销毁它,所以activity被重新加载,相当于重新打开了应用


分享到:
评论

相关推荐

    智能家居系统-Activity的启动和销毁.pptx

    系统销毁是由于Activity处于stopped 状态,并且它长期未被使用,或者前台的Activity需要更多的资源,这些情况下系统就会关闭后台的进程,以恢复一些内存。 Activity状态的存储和恢复 当系统停止Activity时,它会...

    异步任务中Activity销毁时保证提示框不出问题的代码示例

    提示框的处理则需要在`AsyncTask`的`onPreExecute()`方法中显示,这样即使Activity被销毁,对话框也会随着新创建的Activity再次显示。在`onPostExecute()`或`onCancelled()`方法中隐藏或取消对话框。 以下是一个...

    activity生命周期、线程优先级、异常销毁、任务栈

    异常销毁是Android系统处理错误时的一种机制,而任务栈则是Activity组织和管理的重要方式。下面我们将详细探讨这些知识点。 首先,Activity的生命周期包括了创建(onCreate())、启动(onStart())、可见(onResume...

    重建Activity-Recreating an Activity

    在Activity生命周期中,重建(Recreating an Activity)是一个重要的概念,涉及到Activity因不同原因被销毁(Destory)后重新创建(Create)的过程。根据给定的信息,我们可以详细探讨以下知识点: 1. Activity销毁...

    异步任务中Activity销毁时的代码示例

    在提供的文件"Diolag"中,可能包含了关于如何在Activity销毁时处理对话框的示例代码。你应该检查这个文件,学习如何在Activity生命周期的关键点上适当地打开和关闭对话框。 总的来说,处理异步任务和Activity销毁是...

    Android 向右滑动销毁(finish)Activity加强版

    在Android原生系统中,Activity的销毁通常通过调用`finish()`方法来实现。然而,为了增加互动性,开发者常常会添加自定义手势来触发这一行为。在本案例中,我们将实现一个向右滑动就能销毁Activity的增强功能,它...

    android中以广播的形式销毁栈中的activity

    这些方法在状态改变时会被系统调用,开发者可以在这些方法中进行相应的处理。 广播Receiver(BroadcastReceiver)是Android中实现跨组件通信的一种方式,它可以监听并响应系统或应用发送的自定义广播。在我们的场景...

    service后台运行实时更新activity

    在Activity中,创建一个相同类型的Handler实例,并将其设置为Message的目标,这样在Service中发送的Message就能被Activity正确接收并处理。 7. **生命周期管理**: 为了防止内存泄漏和资源浪费,开发者需要在...

    Android 中从activity1跳转到activity2再回到activity所经历的生命周期

    ### Android 中从Activity1跳转到Activity2再回到Activity1所经历的生命周期 在Android开发过程中,理解Activity的...在实际开发中,正确处理这些生命周期方法是非常重要的,特别是在涉及复杂的用户交互和后台任务时。

    安卓开发框架工具类相关-activity生命周期线程优先级异常销毁任务栈.zip

    开发者应处理好这种情况,确保在Activity被销毁前完成必要的操作。同时,对于未捕获的异常,Android会自动结束应用进程,因此良好的异常处理机制是保证应用稳定性的必要条件。 任务栈(Task Stack)是Android应用...

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

    本文将深入探讨在界面跳转后,Activity被系统Kill时的方法调用过程,并提供相关的Android基础知识。 首先,了解Activity的生命周期是理解这一主题的关键。Activity的生命周期主要包含以下几个状态:创建(Created)...

    一个activity中多个handler和消息的处理过程

    此外,当一个Activity被销毁时,如果仍有运行在后台的工作线程通过Handler向主线程发送消息,可能会引发崩溃。因此,需要在Activity的onDestroy()方法中正确清理Handler。 总结起来,一个Activity中的多个Handler...

    android安卓app如何彻底结束进程. 光调用finish()是结束不了程序的,程序中的线程依旧在后台运行.zip

    在Android系统中,当用户点击应用的返回按钮或者调用`finish()`方法时,当前活动(Activity)会被销毁,但这并不意味着整个应用程序进程被完全结束。实际上,Android系统为了优化性能,可能会保持应用的部分或全部...

    android activity 生命周期

    Activity的生命周期分为几个关键状态,包括初始化(创建)、可见性变化、前台和后台切换以及销毁。这些状态之间的转换是由系统根据应用的行为和设备资源管理自动触发的。主要的状态包括: 1. **初始状态**:当...

    Activity運作流程

    此时用户无法与`Activity`交互,但是`Activity`仍然运行在后台。 - **停止状态**: - `onStop()`:当`Activity`完全不可见时调用。例如,当另一个`Activity`覆盖了当前`Activity`时。 - **销毁状态**: - `...

    深入理解Activity生命周期

    使用`android:configChanges`属性可以在XML清单文件中指定哪些配置更改应由Activity自己处理,而不是默认销毁并重建Activity。`onConfigurationChanged(Configuration newConfig)`方法可用于处理这些特定配置变化。 ...

    Android 提高进程优先级 不被自动销毁

    7. **理解并处理Activity的生命周期**:在适当的地方保存和恢复Activity的状态,如在`onSaveInstanceState()`中保存数据,在`onCreate()`或`onRestoreInstanceState()`中恢复,以应对进程被系统销毁的情况。...

    详解Android.activity销毁流程的工作原理

    3. `ActivityManagerService.finishActivity()`:在ActivityManagerService中,这个方法处理结束Activity的请求,最终调用`ActivityStack.requestFinishActivityLocked()`。 `ActivityStack....

    Android知识点Activity篇.pdf

    - **Killed (Destroyed)**:Activity已被系统销毁,其内存资源被回收。 3. **Activity的生命周期** Activity的生命周期由一系列的回调方法组成,这些方法在特定事件发生时被系统调用。正常情况下的生命周期包括:...

    Android部分Activity篇.pdf

    6. onDestroy():Activity即将被销毁时调用,是生命周期中的最后一个回调,可以在这里做最后的清理,如取消注册监听器、释放大内存对象等。 在某些特殊情况下,Activity可能不会经过onStop()直接调用onDestroy(),...

Global site tag (gtag.js) - Google Analytics