Android Oreo的后台服务

Android Oreo的后台服务,第1张

Android Oreo的后台服务

如果您可以在此处的某处正确阅读
Android Oreo 8.0
文档,则可能未在此处发布此问题。

步骤1: 确保您将服务作为前台启动,

Service
如以下代码所示

ContextCompat.startForegroundService(mainActivity, new Intent(getContext(), GpsServices.class));ContextCompat.startForegroundService(mainActivity, new Intent(getContext(), BluetoothService.class));ContextCompat.startForegroundService(mainActivity, new Intent(getContext(), BackgroundApiService.class));

步骤2: 使用通知显示您的服务正在运行。在的

onCreate
方法中的代码下面添加一行
Service

@Overridepublic void onCreate() {    ...    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {        startForeground(NOTIFICATION_ID, notification);    }    ...}

步骤3:

notification
在服务停止或销毁时删除。

@Overridepublic void onDestroy() {    ...    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {          stopForeground(true); //true will remove notification    }    ...}

该解决方案的一个问题是,它将一直显示,

notification
直到您
Service
Android Oreo 8.0
上运行的所有设备上运行为止。

我确信即使该应用程序处于后台或处于终止状态,该解决方案也能正常工作。

重要说明: 在ANDROID OREO 8.0中必须显示在后台运行服务的通知(在后台或处于杀死状态的APP)。您 不能逃避 它。因此,
建议 您对应用程序进行必要的更改,以按照ANDROID遵循或要求的 最佳 做法正确地使它正常工作。

我希望这可能有助于解决您的问题。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5129548.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存