如何从代码中完全销毁 activity?

How to completely destroy an activity from code?

我正在 android 使用 java 构建药物提醒应用程序。用户可以设置一个或多个提醒,并根据这些提醒服药。

问题是,无论何时生成通知,并且用户点击它并且接收器 activity 打开,都会向用户提供两个选择,要么吃药,要么不吃药。现在,我已确保在这两种情况下,activity 都将完成并调用其 onDestroy() 方法。我的objective是为了防止activity出现在最近的应用列表中,让用户不能重复服用或跳过药物。

这是详细信息(如果有任何帮助,链接都指向应用程序的屏幕截图):

通知来了,用户点击通知,接收提醒 activity 打开

用户服用或跳过药物,activity 结束。

但是 activity 仍然显示在最近的应用程序列表中,如果点击它,它会再次打开提醒接收 activity,用户可以执行相同的操作再次

我想阻止这种特殊行为的发生。

这是我尝试过的东西(我有一个片段,运行 在 activity 之上):

  1. 从片段中完成 activity,然后对其调用 onDestroy()
ReminderRecieveActivity activity = (ReminderRecieveActivity) requireActivity();
activity.finish();
activity.onDestroy();

  1. 像这样修改activity的onDestroy()方法
    @Override
    protected void onDestroy() {
        super.onDestroy();
        int id= android.os.Process.myPid();
        android.os.Process.killProcess(id);
        System.exit(0);
    }

问题依旧,求助

为什么不创建一个单独的 Activity android:noHistory="true" 和 android:excludeFromRecents="true"?您不必终止进程即可。