0

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

问题是,每当生成通知,并且用户点击它并且接收器活动打开时,都会向用户呈现两种选择,要么吃药,要么跳过它。现在,我已经确保在这两种情况下,活动都将完成并且也调用了它的 onDestroy() 方法。我的目标是防止该活动出现在最近的应用列表中,以便用户不能重复服用或跳过药物。

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

通知图片

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

提醒接收活动

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

最近的应用列表中显示的活动

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

从最近的应用列表中点击应用后

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

这是我尝试过的事情(我有一个片段,在活动之上运行):

  1. 从片段完成活动,然后在其上调用 onDestroy()
ReminderRecieveActivity activity = (ReminderRecieveActivity) requireActivity();
activity.finish();
activity.onDestroy();

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

但是问题依旧,求大神帮忙。

4

1 回答 1

0

为什么不使用 android:noHistory="true" 和 android:excludeFromRecents="true" 创建一个单独的 Activity?你不必杀死这个过程来做到这一点。

于 2020-06-26T16:18:12.143 回答