【问题标题】:What happens when back button or home or application removed from recent apps [closed]从最近的应用程序中删除后退按钮或主页或应用程序时会发生什么[关闭]
【发布时间】:2017-07-24 14:35:13
【问题描述】:

我想知道按下返回按钮时会发生什么,是否有任何数据丢失?或者我们只是按下返回按钮,当我们按下主页按钮时,可能会对该状态执行什么操作或数据丢失,最后,当我们从最近的应用程序中删除应用程序时,当我们从最近的应用程序中删除应用程序时会发生什么情况是否存在数据丢失或某事

谢谢!

【问题讨论】:

  • 你的问题太宽泛了。数据丢失是什么意思?
  • 表示变量中的数据,是否被覆盖

标签: java android android-service android-lifecycle


【解决方案1】:

据我所知,您想知道在执行以下操作时应用程序数据会发生什么:

  1. 使用设备后退按钮从应用程序退出时
  2. 点击主页按钮后应用程序进入后台时
  3. 当应用程序从最近的应用程序列表中删除时

1。使用设备返回按钮退出应用程序时

当用户退出某个应用程序时,该应用程序的所有活动都将从活动堆栈中删除,并且所有相关数据也将被 Android 系统从堆栈和堆中删除。 如果用户期望一些其他行为,则开发人员需要覆盖 onBackPressed() 方法。

2。当应用程序在点击主页按钮后进入后台时

当应用程序使用主页按钮进入后台时,该应用程序的活动由活动管理器保持在后台。 保留应用程序数据取决于开发人员如何在onStop() 方法中处理它们。

3。当应用程序从最近的应用程序列表中删除时

在这种情况下,该应用程序的所有活动都将从活动堆栈中删除,并且所有相关数据也将被 Android 系统从堆栈和堆中删除。 如果用户期望其他行为,则开发人员需要重写和自定义 onStop()/onBackPressed() 方法。

希望这个小小的解释对你有所帮助。

【讨论】:

  • 这很有帮助,服务呢,警报作业调度程序,只有局部变量会丢失数据吗?静态变量呢
  • 对于服务,也依赖于dev。如果开发人员希望即使在应用程序从前台关闭后仍保持其服务运行,则服务处理的数据不会丢失。静态数据就像全局数据,所以在应用程序的所有进程关闭之前,静态数据将保持不变。并且局部变量值将根据它们的范围运行。为了更清晰的理解,你需要对Activity和Service的生命周期有一个清晰的认识
  • 你能不能删除你的答案,我有太多的反对意见
  • 我认为你应该重新组织你的问题,让人们一眼就能理解问题。
  • downvote 不会去,你能建议编辑吗?
【解决方案2】:

从活动/片段中按“主页按钮”将导致 onPause() 然后 onStop() 由于 Android 的生命周期,当活动不再可见时执行这些状态。

在activity中按下返回键,会导致onPause->onStop() ->onDestroy(),因为返回键会调用到activity的finish()。 从片段中,它将调用宿主活动的onBackPressed() 方法(您可以在那里决定做什么)。

从最近的应用程序中删除应用程序将导致onDestroy(),因为您正在终止进程。

注意:Vogella here 提供了一个非常有用的教程,您可以从中学到很多关于生命周期的知识。在那里,您会发现一个非常简单的 POC,其中包含直观地显示整个生命周期的通知。

希望对你有帮助:)

【讨论】:

  • 你能不能删除你的答案,我有太多的反对意见
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-05
  • 2014-12-22
  • 1970-01-01
  • 2016-08-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多