gpt4 book ai didi

android - Google Play 和 Launcher 推出了独立的 Activity

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:10:19 25 4
gpt4 key购买 nike

假设我有一个简单的应用程序,带有一个 SplashScreenActivity 和一个 MainActivity
下面是我的 AndroidManifest.xml 的一部分:

    <activity
android:name=".front.activities.splashscreen.SplashScreenActivity"
android:launchMode="standard"
android:screenOrientation="portrait"
android:theme="@style/SplashTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".front.activities.main.MainActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:label="@string/Main_Title"
android:launchMode="singleTop"
android:screenOrientation="portrait"/>

我的 SplashScreenActivityonCreate() 中打开 MainActivity

问题

如果应用程序是从 Google Play 而不是启动器启动的,如果我按下主屏幕并单击启动器中的应用程序图标,则会再次启动一个 SplashScreenActivity,因此也会启动一个 MainActivity 在后台堆栈上。

重现步骤

  1. 如果应用程序打开,则将其终止。
  2. 从 Google Play 打开应用。
  3. 按主页键
  4. 从启动器打开应用。您会注意到 SplashScreenActivity 已再次启动(或通过查看日志)
  5. 重复步骤 3-4。每次重复,都会启动一个 SplashScreenActivityMainActivity

经过多次尝试,如果我们按下返回按钮,我们会注意到返回堆栈中有多个MainActivity

更多信息

  1. 如果应用不是从 Google Play 启动,而是第一次从启动器启动(第 2 步),则无法重现。
  2. 不仅是 Google play,任何其他发送启动应用程序 Intent 的应用程序都可以重现这一点。
  3. 如果我先从启动器启动,然后从 Google Play 启动,将启动 2 个 SplashScreenActivity。但是如果我再次按下启动器中的应用程序图标,它不会创建第三个 SplashScreenActivity。它会将第一个启动的 MainActivity 带到顶部。

我尝试了什么

  1. SplashScreenActivity 设为 android:launchMode="singleTask"。没有帮助。
  2. MainActivity 设为 android:launchMode="singleTask"。这样可以防止创建多个MainActivity,但不能解决多次启动SplashScreenActivity的问题。您还可以假设 MainActivity 不应设置为 singleTask

我的预期

通过点击启动器中的应用程序图标,Android 应该能够在我的任务管理器中发现该应用程序已经启动并且会简单地将它带到顶部。

我该如何解决这个问题?

最佳答案

一些启动器有这个错误:当应用程序从主屏幕启动时,初始 Activity 的新实例被创建而不是恢复应用程序。它可以通过添加来修复

if (!isTaskRoot()) {
finish();
return;
}

到初始 Activity 的 onCreate()。另见:

Resume last activity when launcher icon is clicked ,

Resume the Top Activity instead of starting the Launcher Activity

关于android - Google Play 和 Launcher 推出了独立的 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52622397/

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