fai*_*eji 12 java android push-notification android-service android-8.0-oreo
如何在没有显示通知点的情况下在android Oreo中继续后台服务?我使用通知继续我的后台服务,但我不想显示运行服务的通知.
Amr*_*dri 26
如果您已经在这里的某处正确阅读了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));
Run Code Online (Sandbox Code Playgroud)
第2步:使用通知显示您的服务正在运行.在
onCreate方法中添加以下代码行Service.
@Override
public void onCreate() {
...
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
startForeground(NOTIFICATION_ID, notification);
}
...
}
Run Code Online (Sandbox Code Playgroud)
步骤3:删除
notification服务停止或销毁的时间.
@Override
public void onDestroy() {
...
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
stopForeground(true); //true will remove notification
}
...
}
Run Code Online (Sandbox Code Playgroud)
此解决方案的一个问题是,它将继续显示,notification直到您Service在Android Oreo 8.0上运行的所有设备上运行.
我确信即使应用程序处于后台或处于kill状态,此解决方案也能正常工作.
重要说明:显示在背景中运行服务的通知(背景中的应用程序或杀死状态)在ANDROID OREO 8.0中是强制性的.你不能用它跑.因此,我们建议您根据ANDROID所做的最佳实践,对您的应用程序进行必要的更改以使其正常工作.
我希望这可能有助于解决您的问题.
| 归档时间: |
|
| 查看次数: |
24502 次 |
| 最近记录: |