start fore service on android O
时间: 2024-03-14 17:43:42 浏览: 128
在 Android O 及以上版本中,由于后台服务限制的加强,需要使用 `startForegroundService()` 方法来启动前台服务。
以下是启动前台服务的示例代码:
```java
// 创建前台服务通知
Notification notification = new Notification.Builder(this, CHANNEL_ID)
.setContentTitle("前台服务标题")
.setContentText("前台服务内容")
.setSmallIcon(R.drawable.notification_icon)
.build();
// 创建启动前台服务的意图
Intent serviceIntent = new Intent(this, MyForegroundService.class);
serviceIntent.setAction("ACTION_START_FOREGROUND_SERVICE");
serviceIntent.putExtra("EXTRA_PARAM", "前台服务参数");
// 在 Android O 及以上版本中,使用 startForegroundService() 方法启动前台服务
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
startForegroundService(serviceIntent);
} else {
startService(serviceIntent);
}
```
在服务的 `onCreate()` 方法中调用 `startForeground()` 方法设置前台服务通知:
```java
@Override
public void onCreate() {
super.onCreate();
// 创建前台服务通知
Notification notification = new Notification.Builder(this, CHANNEL_ID)
.setContentTitle("前台服务标题")
.setContentText("前台服务内容")
.setSmallIcon(R.drawable.notification_icon)
.build();
// 设置前台服务通知
startForeground(NOTIFICATION_ID, notification);
}
```
阅读全文