我有一个由警报事件触发的广播接收器,它检查应用程序是否处于空闲状态(用户未处于活动状态)。现在我想重置活动堆栈并将应用程序带到第一个/默认活动。
但如果我这样做:
Intent intent = new Intent(context, StartUp.class);
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_FROM_BACKGROUND | Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
然后我的应用程序到了前台。
我想静静地这样做,这样用户就不会被我的应用程序打乱(显然他正在做其他事情)。
所以我的问题是如何在不启动活动的情况下清除活动堆栈?
答案 0 :(得分:3)
检查您的任何活动是否在前台似乎已覆盖here,但我还没有尝试过。然后,如果您想终止整个应用程序,请执行以下操作:
System.runFinalizersOnExit(true);
System.exit(0);
你完成了。希望这会对你有所帮助。
答案 1 :(得分:0)
最重要的是,为什么不将状态保存到例如共享首选项,当用户再次启动应用程序时,您可以检测到需要清除它并重新启动活动。即使用延迟堆栈重置的概念。可能还有其他含义,例如SharedPreferences in BroadcastReceiver seems to not update?,只是为了给出一个想法。