如何从代码中完全销毁 activity?
How to completely destroy an activity from code?
我正在 android 使用 java 构建药物提醒应用程序。用户可以设置一个或多个提醒,并根据这些提醒服药。
问题是,无论何时生成通知,并且用户点击它并且接收器 activity 打开,都会向用户提供两个选择,要么吃药,要么不吃药。现在,我已确保在这两种情况下,activity 都将完成并调用其 onDestroy() 方法。我的objective是为了防止activity出现在最近的应用列表中,让用户不能重复服用或跳过药物。
这是详细信息(如果有任何帮助,链接都指向应用程序的屏幕截图):
通知来了,用户点击通知,接收提醒 activity 打开
用户服用或跳过药物,activity 结束。
但是 activity 仍然显示在最近的应用程序列表中,如果点击它,它会再次打开提醒接收 activity,用户可以执行相同的操作再次
我想阻止这种特殊行为的发生。
这是我尝试过的东西(我有一个片段,运行 在 activity 之上):
- 从片段中完成 activity,然后对其调用 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);
}
问题依旧,求助
为什么不创建一个单独的 Activity android:noHistory="true" 和 android:excludeFromRecents="true"?您不必终止进程即可。
我正在 android 使用 java 构建药物提醒应用程序。用户可以设置一个或多个提醒,并根据这些提醒服药。
问题是,无论何时生成通知,并且用户点击它并且接收器 activity 打开,都会向用户提供两个选择,要么吃药,要么不吃药。现在,我已确保在这两种情况下,activity 都将完成并调用其 onDestroy() 方法。我的objective是为了防止activity出现在最近的应用列表中,让用户不能重复服用或跳过药物。
这是详细信息(如果有任何帮助,链接都指向应用程序的屏幕截图):
通知来了,用户点击通知,接收提醒 activity 打开
用户服用或跳过药物,activity 结束。
但是 activity 仍然显示在最近的应用程序列表中,如果点击它,它会再次打开提醒接收 activity,用户可以执行相同的操作再次
我想阻止这种特殊行为的发生。
这是我尝试过的东西(我有一个片段,运行 在 activity 之上):
- 从片段中完成 activity,然后对其调用 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);
}
问题依旧,求助
为什么不创建一个单独的 Activity android:noHistory="true" 和 android:excludeFromRecents="true"?您不必终止进程即可。