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

官方文档: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上有效

上一篇 Android 10(Api 29)新特性适配 - 设备硬件标识符访问限制
下一篇 Android 10(Api 29)新特性适配 - 后台应用增加定位限制
目录
文章列表
1 以太坊学习5:Geth命令行环境
以太坊学习5:Geth命令行环境
2
provider.BouncyCastleProvider库导入用于算法和生成证书
provider.BouncyCastleProvider库导入用于算法和生成证书
3
CSharp 多线程通信
CSharp 多线程通信
4
基于Nacos实现Spring Cloud Gateway实现动态路由的方法
基于Nacos实现Spring Cloud Gateway实现动态路由的方法
5
腾讯云跨账号内网互通
腾讯云跨账号内网互通
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。