web-dev-qa-db-ja.com

Android oreoのバックグラウンドサービス

Android Oreoで通知ドットを表示せずにバックグラウンドサービスを続行する方法?通知を使用してバックグラウンドサービスを続行しますが、実行中のサービスの通知を表示したくありません。

13
faiyaz meghreji

このコードは私のために働いた。最初に確認してください:

1-マニフェストでサービスを定義する

2-マニフェストで権限を定義する

  <uses-permission Android:name="Android.permission.FOREGROUND_SERVICE" />

3-あなたが前にサービスを開始したことを確認してください。

サービスには通知が必要です。通知にはChannelIDが必要であることに注意してください。

このページはあなたを助けることができます:

androidでカスタム通知レイアウトを作成する方法

Android画面に通知を表示する方法

次のコードをサービスに貼り付けます

@Override
    public void onCreate() {
        super.onCreate();
            try {
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                    startForeground(" your Notification ID ", notification);
                }
            } catch (Exception e) {
                Log.e(" Error --->> ", e.getMessage());
            }
    }

その後、このコードを追加します:

@Override
public ComponentName startForegroundService(Intent service) {
    return super.startForegroundService(service);
}

この:

@Override
public void onDestroy() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        stopForeground(true);
    }
}
1
Masoud Siahkali