【问题标题】:Two instances of an Activity with launchMode as singleTasklaunchMode 为 singleTask 的 Activity 的两个实例
【发布时间】:2020-03-26 17:58:02
【问题描述】:

我有一个使用 launchMode 作为 singleTask 的活动。但是由于某种原因,当我尝试在 "adb shell dumpsys activity activites" 中查找日志时,存在两个实例。第一个实例使用
intent={act= flg=0x10000000 cmp=} 启动,第二个实例使用以下意图
intent= { act= flg=0x10200000 cmp= (has extras)} 启动。它是什么旗子?

实际上第二个意图是由不同的应用程序启动的。如何防止该应用启动我的活动的新实例。

【问题讨论】:

  • 有些地方不太对劲。您是如何首次启动您的应用程序的?通过应用程序图标从主屏幕?或来自 Android Studio 或安装程序?您可能会看到一个非常讨厌的长期 Android 错误。
  • 两个实例是否在同一个任务中?还是他们在不同的任务中?你能粘贴adb shell dumpsys activity activities的全部相关输出吗?
  • 我意识到这个问题已经 5 个月大了。你有没有解决它?

标签: android android-intent launchmode


【解决方案1】:

它是什么标志 - 0x10200000 ?

回答-https://stackoverflow.com/a/29875943/4694013

【讨论】:

  • 0x10000000 对应于 FLAG_ACTIVITY_NEW_TASK。 0x10200000对应什么?
  • 正如您在共享的图像中看到的那样,提到 singleTask 和 singleInstance 不会启动多个实例,即使它们来自不同的进程。
  • 这是错误的。这些特殊启动模式的全部意义在于防止多个实例,尤其是从多个任务启动时。
猜你喜欢
  • 1970-01-01
  • 2012-02-16
  • 2017-02-12
  • 2017-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-04
相关资源
最近更新 更多