Android13在屏幕关闭后2小时杀死我的前台服务。
创始人
2024-10-01 11:01:03
0

这可能是 Android 13 中的电池优化所导致的。可以尝试在后台服务的 onStartCommand() 方法中添加以下代码:

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        String CHANNEL_ID = "my_channel_01";
        NotificationChannel channel = new NotificationChannel(CHANNEL_ID,
                "Channel human readable title",
                NotificationManager.IMPORTANCE_DEFAULT);

        ((NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE)).createNotificationChannel(channel);

        Notification notification = new NotificationCompat.Builder(this, CHANNEL_ID)
                .setContentTitle("Title")
                .setContentText("Content")
                .build();

        startForeground(1, notification);
    } else {
        startForeground(1, new Notification());
    }

    // 在这里添加你的服务代码

    return START_STICKY;
}

这段代码会在 API 等级大于等于 26 的设备上创建一个前台服务通知,并将服务置于前台,防止服务被系统杀死。注意在 Android 8.0(API 等级 26)及以上的设备上,必须创建通知渠道。

如果你的服务已经在前台运行,可以在处理屏幕关闭事件时更新服务的通知,这样系统就不会将其杀死。可以使用以下代码:

// 在处理屏幕关闭事件的方法中添加这些代码
Notification notification = createNotification();
startForeground(NOTIFICATION_ID, notification);

同时,在你的 Manifest 文件中添加以下权限:


这应该可以解决问题,让你的服务在 Android 13 设备上保持运行。

相关内容

热门资讯

透视中牌率"aa p... 透视中牌率"aa poker辅助"详细辅助介绍教程(辅助透视软件辅助)科技教程也叫必备教程,这是一款...
透视最新"poker... 透视最新"poker master辅助"详细辅助黑科技教程(辅助真的假的技巧)科技教程也叫必备教程,...
透视ai"wepok... 透视ai"wepoker俱乐部辅助器"详细辅助揭秘攻略(模拟器哪个好用神器);1.wepoker俱乐...
透视脚本"hhpko... 透视脚本"hhpkoer辅助器视频"详细辅助必赢教程(辅助器下载攻略);1.hhpkoer辅助器视频...
透视教程"红龙pok... 透视教程"红龙poker辅助工具"详细辅助教你教程(可以提高运气透视)关于红龙poker辅助工具机制...
透视ai"wepok... 1、透视ai"wepoker公共底牌"详细辅助安装教程(私人局开挂视频透明)。2、wepoker公共...
透视苹果版"约局吧开... 透视苹果版"约局吧开挂神器是真的吗"详细辅助技巧教程(游戏下载教程)是由北京得约局吧开挂神器是真的吗...
透视攻略"werpl... 透视攻略"werplan脚本"详细辅助微扑克教程(透视app下载攻略)1、很好的工具软件,可以解锁游...
透视存在"we-po... 1、透视存在"we-poker是什么软件"详细辅助存在挂教程(透视方法技巧)。2、we-poker是...
透视科技"wepok... 1、透视科技"wepoker插件下载"详细辅助攻略教程(游戏下载辅助)。2、wepoker插件下载透...