Android 10(Api 29)新特性适配 - 禁止后台启动Activity

官方文档:https://developer.android.google.cn/preview/privacy/background-activity-starts

现象描述

  • AndroidQ上,后台启动Activity会被系统忽略,不管targetSdkVersion多少
  • AndroidQ上,即使应用有前台服务也不行
  • AndroidQ以下版本没影响

解决方法

发送全屏通知:

1
2
//AndroidManifest 声明新权限,不用动态申请
<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT"/>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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上有效

Powered by AppBlog.CN     浙ICP备14037229号

Copyright © 2012 - 2020 APP开发技术博客 All Rights Reserved.

访客数 : | 访问量 :