小编jon*_*lee的帖子

无法在 android 10 [android Q] 中启动活动背景

我使用 android 10 [android Q,galaxy 10],

我使用 android studio 3.3,

使用 AVD,并制作了 api 29 [android 10] 虚拟电话。

在虚拟机上,我执行我的应用程序,然后,我启动其他应用程序,如日历、计算器。所以我的应用程序活动进入后台模式。

当我在 BroadcastReceiver 收到一条消息时。我调用 startActivity。

在这里,代码 --> 公共类 myReceiver 扩展了 BroadcastReceiver {}

public void onReceive(Context context, Intent intent)
{
        Intent intentRun = new Intent(context, LoginSuccess.class);
        intentRun.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK);
        context.startActivity(intentRun);
}
Run Code Online (Sandbox Code Playgroud)

但 LoginSuccess 活动没有出现。[当我的应用程序处于后台模式时]

使用相同的代码,当我的应用程序处于前台模式时,LoginSuccess 活动显示得很好。

调用堆栈捕获图像

上图显示了我在广播接收器中调用 startActivity 之前的调用堆栈。

我已阅读有关 android 10 后台活动问题的指南。[developer.android.com/~~某个位置]

在引导线上,

我开始知道如果 Activity 存在于调用堆栈中,它甚至可以在后台模式下启动。

上面的代码,它尝试启动最近调用堆栈中存在的活动。

为什么 startActivity 调用在后台模式下失败?[也许不会失败,但无论如何没有激活到前台]

android android-virtual-device

15
推荐指数
2
解决办法
2万
查看次数

标签 统计

android ×1

android-virtual-device ×1