Android关于8.0以上Service服务相关问题记录
16lz
2021-01-23
报错内容IllegalStateException: Not allowed to start service Intent ...
解决方案:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { context.startForegroundService(new Intent(context, MyService.class)); } else { context.startService(new Intent(context, MyService.class)); }
在Service类中添加如下代码public static final String CHANNEL_ID_STRING = "service_01"; @Override public void onCreate() { super.onCreate(); //适配8.0service NotificationManager notificationManager = (NotificationManager) MyApp.getInstance().getSystemService(Context.NOTIFICATION_SERVICE); NotificationChannel mChannel = null; if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { mChannel = new NotificationChannel(CHANNEL_ID_STRING, getString(R.string.app_name), NotificationManager.IMPORTANCE_LOW); notificationManager.createNotificationChannel(mChannel); Notification notification = new Notification.Builder(getApplicationContext(), CHANNEL_ID_STRING).build(); startForeground(1, notification); }}
这样就能解决问题。
更多相关文章
- 分享一段Android基于https协议POST数据的代码
- 编写android拨打电话apk应用实例代码
- 【小超_U3D】Unity打出Android包,运行报错解决方案
- android 用代码编写linearlayout布局
- Cocos2d-x 3.2编译Android程序错误的解决方案
- android延迟进入主界面和点击按钮进入主界面代码
- Android使用webview让服务器上的js调用java代码的方法
- android 被强制横屏,Activity重启问题解决方案
- Android studio 真机调试时生成的文件找不到的解决方案