【问题标题】:How to completely exit the app如何完全退出应用程序
【发布时间】:2015-04-01 07:59:04
【问题描述】:

我想完全退出应用程序。我尝试了finish()android.os.Process.killProcess(Process.myPid()),但它们仍然让应用程序在后台运行。

很多人说这是不可能的,但我的银行应用程序能够做到这一点。当您退出该银行应用程序时,您无法在“最近的应用程序”菜单中看到它。

有人知道怎么做吗?

【问题讨论】:

  • 您是要杀死该应用还是将其从最近的应用菜单中隐藏?
  • 你的意思是stackoverflow.com/questions/13704782/… 从最近的应用程序中隐藏并不一定意味着该应用程序真的被杀死了。
  • 你不想杀死你的应用程序的进程。让 Android 处理内存管理和您的生命周期。您可能的意思是您想从最近的菜单中排除它。或者,您可能需要 WindowManager.LayoutParams.FLAG_SECURE。看看这两个。

标签: android


【解决方案1】:

当您退出该银行应用程序时,您无法在“最近使用的应用程序”菜单中看到它。

这与流程无关。流程和任务不是特别相关。

尝试finishAndRemoveTask()(API 级别 21+)或 finishAffinity()(API 级别 16+),这两种方法都适用于 Activity。或者,正如 Thom Wiggers 在 cmets 中所建议的那样,也许该应用根本没有出现在最近的任务列表中,通过 android:excludeFromRecents

【讨论】:

  • 此外,关于银行应用程序,WindowManager.LayoutParams.FLAG_SECURE 可能是所需要的,而不是 excludeFromRecents。
【解决方案2】:

要从最近的活动中删除活动,请在清单中的活动标记中使用:

android:excludeFromRecents="true"

要从后台删除应用程序,请使用以下代码。请注意,这不会从最近删除应用程序。它只是从启动 Activity 启动应用程序。

int pid = android.os.Process.myPid();
android.os.Process.killProcess(pid);

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-19
    • 1970-01-01
    • 2011-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多