【问题标题】:Is there a method to clear all the task in an app (Android)?有没有办法清除应用程序(Android)中的所有任务?
【发布时间】:2020-01-16 10:23:13
【问题描述】:

快速提问,只是想知道我的项目中是否有 2 个任务。有什么方法可以一次性清除它们。这是因为当我尝试清除这两个任务以退出我的应用程序时,只有一个正在清除而另一个仍然存在,这阻止了我退出应用程序。

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

有什么解决这个问题的建议吗?

【问题讨论】:

标签: android android-activity task


【解决方案1】:

是的,您可以使用:

FLAG_ACTIVITY_CLEAR_TOP
FLAG_ACTIVITY_SINGLE_TOP
FLAG_ACTIVITY_CLEAR_TASK
FLAG_ACTIVITY_NEW_TASK

否则在清单文件中的启动活动上使用android:noHistory="true"

【讨论】:

【解决方案2】:

如果你真的想退出这两个任务,那么你需要这样做:

当你想退出时,你发送一个广播 Intent 并将 ACTION 设置为 "my.package.name.QUIT"

在您的所有活动中,声明并注册一个侦听器,如下所示:

registerReceiver(myReceiver, new IntentFilter("my.package.name.QUIT"));

当你的BroadcastReceiver中的onReceive()被调用时,你应该调用finish()

这将确保您的所有活动都完成,无论它们在哪里运行。

注意:我仍然不明白为什么你有多个任务,我认为你需要解决这个问题。这里的解决方案实际上只是一个 hack,因为您可能不想要多个任务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-07
    • 2013-01-08
    • 2016-01-06
    • 1970-01-01
    • 2017-08-04
    • 2021-04-28
    • 2014-06-04
    相关资源
    最近更新 更多