Android 应用再次调用 MAIN/LAUNCHER,而不是 onResume()

标签 android android-manifest lifecycle

当我的 android 应用程序 - Activity B - 移动到后台(通过用户按下 android 主页按钮)时,它仍然存在,按预期调用了 onStop()。

Activity B 并没有在这里被销毁,但是当用户再次点击应用程序的图标时,它会再次调用 intent-filter MAIN 和 LAUNCHER,启动 Activity A,而不是在 Activity B 上调用 onResume()。

因此显示启动 Activity - Activity A - ,但如果用户按下 android 后退按钮,则启动 Activity finishes() ,并显示旧 Activity - Activity B - !

当Activity B被移到后台时应该发生的事情是Activity B被暂停和停止。当通过按应用程序图标恢复应用程序时,应恢复 Activity B。 (除非它被杀死和摧毁,但它还没有)

我该如何解决这个问题? Activity B 最初是由 Activity A 使用

打开的
Intent next = new Intent(ActivityA.this, ActivityB.class);
startActivity(next);
finish();

这是 Activity B 的 list 条目

<activity android:name=".ActivityB"
    android:screenOrientation="portrait"
              android:label="@string/app_name"
              android:configChanges="orientation|keyboardHidden">
</activity>

这是 Activity A 的 list 条目

<activity android:name=".Activity A"
     android:screenOrientation="portrait"
              android:label="@string/app_name"
              android:configChanges="orientation|keyboardHidden">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
</activity>

为什么会发生这种情况,我该如何解决?

最佳答案

在声明 Activity b 的 list 文件中使用 android:launchMode="singleTask"。然后activity b不显示在后台。

关于Android 应用再次调用 MAIN/LAUNCHER,而不是 onResume(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8405827/

相关文章:

java - Android create() 上的空指针异常

java - 找不到符号 "OnKeyListener"

javascript - componentWillReceiveProps 与 getDerivedStateFromProps

Android Activity ,finish() 会杀死我的倒计时线程吗?

android - 为什么在调用 setRetainInstance(true) 时,TextView 的文本没有恢复?

android - 为什么 android xml 文件名必须只包含小写字母和数字 ([a-z0-9_.])?

android - 检查是否违反了 android :minSdkVersion automatically

android - 在项目 'app' 中,已解决的 Google Play 服务库依赖项依赖于另一个确切版本(例如 "[1.3.1 ,2.3]",

android - 谷歌是否加强了 list 包名称的限制?

生命周期方法的Android实现可以在做任何工作后调用父类(super class)实现吗?