我使用安卓10 [安卓Q,Galaxy 10]操作系统,
使用安卓Studio 3.3开发工具,
利用AVD创建了一个API 29 [安卓10]虚拟手机。
在虚拟机上,
我先运行我的应用程序,然后启动其他应用程序如日历、计算器等。
这时我的应用程序活动进入了后台模式。
当我在广播接收器中接收到消息时,
我调用startActivity方法。
代码如下:
public class myReceiver extends BroadcastReceiver {}
但是,在我的应用处于后台模式时,LoginSuccess活动没有显示出来。
使用相同的代码,在我的应用处于前台模式时,LoginSuccess活动非常好地显示出来。 调用堆栈捕获图像 上面的图片显示了在广播接收器中调用startActivity之前的调用堆栈。
我已经阅读了Android 10后台活动问题的指南。[developer.android.com/~~一些位置]
在指南中,
我知道如果活动存在于调用堆栈中,即使在后台模式下也可以启动它。
以上代码尝试启动最近调用堆栈中存在的活动。
为什么在后台模式下无法启动startActivity?[可能不失败,但无论如何都没有激活到前台]
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);
}
但是,在我的应用处于后台模式时,LoginSuccess活动没有显示出来。
使用相同的代码,在我的应用处于前台模式时,LoginSuccess活动非常好地显示出来。 调用堆栈捕获图像 上面的图片显示了在广播接收器中调用startActivity之前的调用堆栈。
我已经阅读了Android 10后台活动问题的指南。[developer.android.com/~~一些位置]
在指南中,
我知道如果活动存在于调用堆栈中,即使在后台模式下也可以启动它。
以上代码尝试启动最近调用堆栈中存在的活动。
为什么在后台模式下无法启动startActivity?[可能不失败,但无论如何都没有激活到前台]