【问题标题】:Getting Illegal Argument Exception: addAppToken Invalid stackId while launching a activity获取非法参数异常:addAppToken 在启动活动时 stackId 无效
【发布时间】:2016-06-14 21:27:48
【问题描述】:

我正在尝试使用标志 CLEAR_TASK 从另一个 Activity 打开一个 Activity,但有时我会遇到异常。

java.lang.IllegalArgumentException: addAppToken: 无效 stackId=1

这是一个间歇性问题,并非每次都发生。

Intent intent1 = new Intent(ActivityA.this, ActivityB.class);
intent1.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);

startActivity(intent1); 

我的 ActivityA 是 SingleInstance,而 ActivityB 是 SingleTask。

【问题讨论】:

  • Intent intent1 = new Intent(ActivityA.this, ActivityB.class); intent1.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);开始活动(意图1);我的 ActivityA 是 SingleInstance,而 ActivityB 是 SingleTask。
  • @MohitRaheja 添加代码编辑帖子比添加 cmets 更好。

标签: java android stack illegalargumentexception


【解决方案1】:

我发现了和你一样的错误。最后我知道了原因,只是因为我同时开始了两次相同的活动。

但是有一些事情困扰着我。

我开发了一个启动器应用程序,此错误仅在我启动或重新启动设备时发生,在我退出我的应用程序后,然后重新启动它,一切运行良好,即使这个错误代码仍然存在。

【讨论】:

    【解决方案2】:

    如果在传递给Context.startActivity() 的 Intent 中设置,则此标志将导致与该活动关联的任何现有任务在活动启动之前被清除。也就是说,该活动成为一个空任务的新根,并且所有旧活动都已完成。这只能与FLAG_ACTIVITY_NEW_TASK结合使用。

    http://developer.android.com/reference/android/content/Intent.html

    【讨论】:

    • 它在 Lollipop 上运行良好,但仅在 Kitkat 设备上出现异常,而且这是一个间歇性问题。不能每次都重现。
    • 请添加一些解释。目前,您的回答被标记为“低质量”,可能会被删除。
    猜你喜欢
    • 1970-01-01
    • 2022-10-14
    • 1970-01-01
    • 1970-01-01
    • 2018-05-02
    • 1970-01-01
    • 1970-01-01
    • 2018-08-17
    • 2019-03-18
    相关资源
    最近更新 更多