我正在构建一个需要用户登录并获取用户ID的应用程序。这个id是我的扩展Application类的成员变量。销毁活动堆栈
我想让应用程序识别何时/如果这个变量被清除了,如果是的话,抛出我的日志屏幕并销毁它后面的Activity堆栈。
这里就是我想我会做的事:
扩展活动和ListActivity(目前只有两种类型我使用的活动)。在onResume()处理程序中,检查是否设置了用户标识。如果没有,请抛出登录屏幕并销毁其后面的Activity堆栈的其余部分。我所有的活动都将来自这些新的扩展活动。
我的问题在于,我不知道如何销毁特定Activity后面的Activity栈。有任何想法吗?
一个想法是有一个广播接收监听一个特定的消息,告诉活动自杀,但我希望Android已经有适合这种情况的东西。
更新:
另外,有没有办法清除整个活动堆栈?我想重写Activity上的onBackPressed()处理程序,并将Activity堆栈炸掉,以便用户重新回到Android主屏幕。
使用FLAG_ACTIVITY_CLEAR_TOP(http://stackoverflow.com/questions/3973092/android-nuke-the-previous-app-history) – danh32 2011-02-03 16:05:23
嗯.. 。在用户登录后,我在Activity的Activity中调用finish();所以它不再是在堆栈上,但我想我不能这样做 – Andrew 2011-02-03 16:20:29