gpt4 book ai didi

android - SingleTask Activity 在同一进程中多次创建

转载 作者:行者123 更新时间:2023-12-05 05:08:23 31 4
gpt4 key购买 nike

我有一个启动器应用,它有一个singleTask Activity 作为主要入口点。当用户导航到另一个 Activity 或第 3 方应用程序,然后点击 主页按钮 时,应该将此 Activity 置于最前面。然而,我的经验是,仅针对第一次按下主页按钮,而是创建了另一个实例(创建了一个新任务,调用了 onCreate())。同时,旧任务仍然存在,包含此 Activity 的原始实例,但无法导航回该任务/Activity 或将其置于前台。

在第一次按下主页按钮后,下一次按下主页按钮会将此 Activity 的第二个实例带到前台。不知道为什么不是第一次调用第一个实例的 onNewIntent() 方法...所以这只发生一次,之后总是第二个实例的 onNewIntent()方法被调用。这意味着原始 Activity 将不可访问..

我试图将任务带到前台,但什么也没有发生……就像它从未存在过一样(但任务与 Activity 一起存在,它在任何时候都不会被杀死)。我可以从代码中找到任务,也可以使用 shell 脚本。它包含原始 Activity

Android TV(操作系统:Pie)正在发生这种情况。知道这可能是什么原因吗?我真的不明白这是怎么发生的……顺便说一句,如果我将 Activity 设置为 singleInstance,结果是一样的。

Activity 看起来像这样:

<activity
android:name=".activities.MainActivity"
android:excludeFromRecents="true"
android:launchMode="singleTask"
android:theme="@style/AppTheme">
<intent-filter android:priority="2">
<action android:name="android.intent.action.MAIN"/>

<category android:name="android.intent.category.HOME"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.LEANBACK_LAUNCHER"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.ALL_APPS"/>

<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>

我尝试交替使用上述属性(priority、excludeFromRecents、taskAffinity),还完全删除了它们,它们没有任何效果...

主页按钮按下发送以下 Intent :

  • Action :“android.intent.action.MAIN”
  • 类别:“android.intent.category.HOME”
  • 组件:上述 Activity

它还有一些额外的东西,但我认为它不相关

最佳答案

您遇到了这个长期存在的讨厌的 Android 错误:

Re-launch of Activity on Home button, but...only the first time

您在评论中说真实用户不会发生这种情况。事实并非如此。如果真实用户从 Play 商店安装您的应用程序,然后立即启动它(安装后单击“打开应用程序”按钮),那么问题将完全按照您的描述重现。

关于android - SingleTask Activity 在同一进程中多次创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58395850/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com