当我在A应用启动一个服务去,在服务中开启一个线程一直去拉起另一个B应用,当A应用在前台的时候可以正常拉起B应用。可是当A应用在后台的时候拉起失败。
服务中的代码很简单。
后来发现原因是因为Android10以后是不允许后台去startActivity的。
解决方法:
添加权限
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
该权限需要用户主动去开启。
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) { startActivity(new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + getPackageName()))); } else { Toast.makeText(getApplicationContext(), "API < " + android.os.Build.VERSION_CODES.M, Toast.LENGTH_SHORT).show(); }