官方文档:https://developer.android.google.cn/preview/privacy/background-activity-starts
现象描述
AndroidQ上,后台启动Activity会被系统忽略,不管targetSdkVersion多少
AndroidQ上,即使应用有前台服务也不行
AndroidQ以下版本没影响
解决方法
发送全屏通知:
//AndroidManifest 声明新权限,不用动态申请
<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT"/>
Intent intent = new Intent(this, ScopedStorageActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this,
REQ_CODE, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Notification notification = new NotificationCompat.Builder(this, Constants.CHANNEL_ID)
.setSmallIcon(R.drawable.ic_launcher_foreground)
.setContentTitle("Incoming call")
.setContentText("(919) 555-1234")
.setPriority(NotificationCompat.PRIORITY_HIGH)
.setCategory(NotificationCompat.CATEGORY_ALARM)
//设置全屏通知后,发送通知直接启动Activity
.setFullScreenIntent(pendingIntent, true)
.build();
NotificationManager manager = getSystemService(NotificationManager.class);
manager.notify(10, notification);
但是:在华为mate20(Api-28)上需要到设置中打开横幅通知;原生Android Q上有效