android开发分享Android高版本Service在后台一分钟被杀死

最近公司出现了一个Bug,Service在后台写log时候一分钟左右被杀死,或者运行一会就被杀死了,上网搜了一下原来是Android高版本为了保护电量,流量什么的,会在后台杀死这些Service,现在我的做法是在通知栏加一条通知,让他保证Service存活。上代码,在Service的onCreate方法里写:private String notificationId = “serviceid”;private String notificationName = “servicename”;pr

最近公司出现了一个Bug,Service在后台写log时候一分钟左右被杀死,或者运行一会就被杀死了,上网搜了一下原来是Android高版本为了保护电量,流量什么的,会在后台杀死这些Service,现在我的做法是在通知栏加一条通知,让他保证Service存活。

上代码,在Service的onCreate方法里写:

private String notificationId = "serviceid"; private String notificationName = "servicename"; private void showNotification(){     NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);     //创建NotificationChannel     if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){         NotificationChannel channel = new NotificationChannel(notificationId, notificationName, NotificationManager.IMPORTANCE_HIGH);         notificationManager.createNotificationChannel(channel);     }     startForeground(1,getNotification()); }  private Notification getNotification() {     Notification.Builder builder = new Notification.Builder(this)             .setSmallIcon(R.drawable.ic_launcher)//通知的图片             .setContentTitle("通知的标题")             .setContentText("通知的内容");     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {         builder.setChannelId(notificationId);     }     Notification notification = builder.build();     return notification; } 

写完这些之后还需要添加一条权限:

<!--Android 9后台运行Service--> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/addevelopment/891910.html

(0)
上一篇 2021年10月19日
下一篇 2021年10月19日

精彩推荐