gpt4 book ai didi

android - 关闭应用程序并从最近的应用程序中删除/

转载 作者:IT王子 更新时间:2023-10-28 23:42:09 25 4
gpt4 key购买 nike

我知道这个问题很常见,在 Stack Overflow 上被问过很多次,但是在访问了将近四页的搜索引擎结果和 Stack Overflow 上关于这个问题的近 20 个问题后,我发现没有一个得到解决或回答正确。

我想要什么:

我想在我的应用程序运行时在最近的应用程序列表中显示它,但是当我关闭应用程序时,我的进程应该被终止并且应用程序应该从最近的应用程序列表中删除。

我找到的一些答案:

use System.exit(0); //doesn't clear app from recents
OR
use android.os.Process.killProcess(android.os.Process.myPid()); //doesn't clear app from recents
OR
use finish() or this.finish() or Activity.finish();// doesn't clear app from recents

我在每个答案中看到的一个常见建议是在 list 中添加以下代码:

android:excludeFromRecents //I think this is wrong approach.

因为当用户在我的应用程序运行时按下主页按钮添加此内容后,用户无法在最近的应用程序列表中看到我的应用程序。

还有许多其他建议,但它们都没有同时完成关闭应用程序和从最近的应用程序列表中清除应用程序的任务。此外,如果您进入 Settings>Apps>yourApp>your Application 看到它仍然要求“强制停止”意味着应用程序正在运行!

最佳答案

我的解决方案基于以上客人的意见,以及下面 gilsaints88 的评论(为了 Android L 兼容性):

将此 Activity 添加到您的 AndroidManifest.xml 文件中:

<activity
android:name="com.example.ExitActivity"
android:theme="@android:style/Theme.NoDisplay"
android:autoRemoveFromRecents="true"/>

然后创建一个类ExitActivity.java:

public class ExitActivity extends Activity
{
@Override protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);

if(android.os.Build.VERSION.SDK_INT >= 21)
{
finishAndRemoveTask();
}
else
{
finish();
}
}

public static void exitApplication(Context context)
{
Intent intent = new Intent(context, ExitActivity.class);

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NO_ANIMATION | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);

context.startActivity(intent);
}
}

然后,每当您想强制关闭您的应用程序并将其从最近的列表中删除时,请调用:

ExitActivity.exitApplication(context);

这个解决方案对我有用,而不是声明 android:excludeFromRecents="true"因为我希望用户能够在最近列表中看到该应用程序,直到我的应用程序触发以编程方式关闭应用程序。

关于android - 关闭应用程序并从最近的应用程序中删除/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22166282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com