我想在后台运行应用时从服务或广播中打开我的活动。
我尝试了以下代码
Intent intent = new Intent("android.intent.action.MAIN");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
在下面的Android 26 API上运行良好。但是对于高于26Api的用户,它没有启动活动。
它在android LogCat中提供流动信息
Timeline: Timeline: Activity_launch_request
Android 10在“从后台启动新活动”方面增加了限制。检出文档:Restrictions on starting activities from the background
有关为什么要施加这些限制的更多详细信息,请查阅Chet Haase的本主题演讲。 GFM2019-Keynote-Chet Haase
我认为此代码将起作用。
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);