【发布时间】:2020-10-17 04:29:35
【问题描述】:
我正在使用 java 在 android 中构建药物提醒应用程序。用户可以设置一个或多个提醒,并根据这些提醒将得到通知吃药。
问题是,每当生成通知时,用户点击它并打开接收器活动时,会为用户提供两种选择,要么吃药,要么不吃药。现在,我已经确保在这两种情况下,活动都将完成并且也调用了它的 onDestroy() 方法。我的目标是防止该活动出现在最近的应用列表中,使用户不能重复服用或跳过药物。
这是详细信息(如果有任何帮助,链接都指向应用程序的屏幕截图):
通知来了,用户点击通知,提醒接收活动打开
用户服用或跳过药物,活动结束。
但该活动仍显示在最近的应用列表中,如果点击它,它会再次打开提醒接收活动,用户可以再次执行相同的操作
我想防止这种特殊行为发生。
这是我尝试过的东西(我有一个片段,在活动之上运行):
- 从片段完成活动,然后在其上调用 onDestroy()
ReminderRecieveActivity activity = (ReminderRecieveActivity) requireActivity();
activity.finish();
activity.onDestroy();
- 像这样修改activity的onDestroy()方法
@Override
protected void onDestroy() {
super.onDestroy();
int id= android.os.Process.myPid();
android.os.Process.killProcess(id);
System.exit(0);
}
但问题依旧,请帮忙。
【问题讨论】:
-
为什么不使用
android:noHistory="true"和android:excludeFromRecents="true"创建一个单独的活动?您不必终止该进程即可。 -
如果您想要一个替代方案,您可以使用 AlertDialog。 developer.android.com/guide/topics/ui/dialogs
-
嗨@EpicPandaForce,您的解决方案运行良好,您能否发布一个答案以便我可以接受?
-
好的,我会这样做的
标签: java android android-studio android-activity android-ondestroy