android - 其他 Activity 也被带到前面 StartActivity

标签 android android-intent android-activity broadcastreceiver start-activity

我的应用程序和一些 BroadcastReceiver 中有两个 Activity(AB)。

我遇到了以下场景:

A 正在运行并使用主页按钮关闭(调用了 onStop)。

一段时间后,BroadcastReceiver 被有意触发。它运行以下代码:

            Intent activityIntent = new Intent(context,
                    B.class);
            activityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                    | Intent.FLAG_ACTIVITY_CLEAR_TOP);

            context.startActivity(activityIntent);

B确实启动了,但是A也被带到了前面(在B之后)。我怎样才能避免 A 被前置?

最佳答案

当您按下主页按钮时,您实际上并没有关闭应用程序(我的意思是它处于暂停状态)并且它处于返回堆栈中,每当您启动同一应用程序的新 Activity 并关闭该 Activity 时,它会弹出顶部 Activity 返回堆栈.. 所以如果你不需要这件事发生那么请尝试下面的代码

@Override
public void onStop() {
    if(!isFinishing())
       finish(); 
    super.onStop();
}

关于android - 其他 Activity 也被带到前面 StartActivity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25405661/

相关文章:

android - 升级到 WorkManager 2.7.0 : How to implement getForegroundInfoAsync for RxWorker?

android - 非调用 Activity 能否通过 Intent 将结果返回给初始 Activity?

android - 非 Activity 中的 Xamarin ContentResolver/CursorLoader 访问

java - 致命异常 : main- I have no idea what's wrong

java - 在模块中发现重复的类 org.apache.http.HttpHeaders

android - 如何从微调器android中选择的国家名称中获取country_iso_code

android - Android 应用程序是否有等同于 http session 的内容?

android - 电池温度返回 null

Android 将我的应用程序 Intent 添加到 edittext 菜单选项

java - Activity 生命周期问题(如何检测 Activity 是否处于前台)