【问题标题】:Removing activity from recent apps keeping older one从最近的应用程序中删除活动,保留较旧的应用程序
【发布时间】:2013-08-18 17:25:04
【问题描述】:

我的 Android APP 遇到了这个挑战:

我有和“对话” - 我的意思是作为对话创建的活动。现在,用户按下主页按钮并离开应用程序〜稍后按住主页按钮并显示最近的应用程序列表。他会将对话框视为我的应用程序的最后一个活动。但是,我不想在“堆栈”上显示此活动。

我尝试了 exceludeFromRecentApps(或类似名称),启用此功能会从列表中删除整个应用程序。但我想让对话框的父活动显示在列表中。 我尝试了覆盖 onResume、onPause 和 onStop 方法的方法,但对我没有效果,因为实例级变量可能会被丢弃(?)。 我相信这是一个微不足道的问题,但我无法在谷歌上找到可行的解决方案。

非常感谢!

【问题讨论】:

  • 实现所需的唯一方法是在对话活动中的 onStop() 中调用 finish()。

标签: android android-activity dialog stack android-recents


【解决方案1】:
android:noHistory="true"
android:taskAffinity=""
android:excludeFromRecents="true"

对于您的情况,首先您需要通过“taskAffinity”标签分隔您的对话活动。然后,您需要在 AndroidManifest.xml 中添加“excludeFromRecents”标签才能从最近列表中删除。

【讨论】:

  • noHistrory 适用于大多数情况,但不适用于我的情况。我正在从服务中打开对话活动,而我的主要活动已经在后台。
【解决方案2】:

就像Hoan Nguyen说的,你需要使用finish()方法但是知道finish()方法并不能保证Activity一定会结束。

【讨论】:

  • 我厌倦了这种方法,对我来说不起作用。打开活动已完成,但是,父活动从未出现。我使用 startActivityForResult 来运行对话框。我检查了我没有在 Manifest 中启用 noHistory。所以我对此感到困惑..:(
猜你喜欢
  • 2014-12-22
  • 1970-01-01
  • 2014-07-16
  • 1970-01-01
  • 2014-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-03
相关资源
最近更新 更多