我正在尝试使用标志CLEAR_TASK从另一个Activity打开一个Activity,但有时我会遇到异常。
java.lang.IllegalArgumentException:addAppToken:invalid stackId = 1
这是一个间歇性问题,并不是每次都会发生。
Intent intent1 = new Intent(ActivityA.this, ActivityB.class);
intent1.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent1);
我的ActivityA是SingleInstance,ActivityB是SingleTask。
答案 0 :(得分:0)
如果在传递给
Context.startActivity()
的Intent中设置,则此标志将导致在活动开始之前清除与活动关联的任何现有任务。也就是说,活动成为否则为空任务的新根,并且任何旧活动都已完成。这只能与FLAG_ACTIVITY_NEW_TASK
一起使用。
http://developer.android.com/reference/android/content/Intent.html
答案 1 :(得分:0)
我发现了和你一样的错误。最后我知道为什么,因为我同时开始两次同样的活动。
但有些事困扰我。
我开发了一个启动器应用程序,这个错误只发生在我启动或重启我的设备,退出我的应用程序后,然后重新启动它,一切运行良好,即使这个错误的代码仍在那里。