サービスとして実行することを目的とした小さなアプリケーションを作成しました。メモリを解放するときに、OS がサービスをシャットダウンすることを決定したことが数回ありました。ドキュメントには、これを回避するために、startForeground を呼び出してこのメソッドに通知を渡すことにより、フォアグラウンド サービスを使用できると記載されています。
通知を表示するコードを書きましたが、すべて正常に動作しているようです。ただし、デバイスの「電源」ボタンを押して画面をオフにすると、Samsung Galaxy S 1 の下部にある 2 つの「通知」ライトが点灯する特定の動作が 1 つあります。通常、これは、SMS や不在着信など、電話で確認すべき「新しい」ものがあることを示しています。進行中のサービスがあるという唯一の通知がオンになっているときに、これらが点灯するのはあまり意味がないと思います.
通知なしではフォアグラウンド サービスを利用できないことを理解しています。
フォアグラウンド サービスでなくなるまで、フォアグラウンド サービスをキャンセルできないことを理解しています。
しかし、新しい重要な情報があるかのように、この Galaxy S1 の下部にあるライトの点灯を止める方法はありますか?
編集:私が使用しているコードは次のとおりです。
Intent intentForeground = new Intent(this, MainService.class)
.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent pendIntent = PendingIntent.getActivity(getApplicationContext(), 0, intentForeground, 0);
Notification notification;
NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext())
.setSmallIcon(R.drawable.ic_notification)
.setTicker("Service started...")
.setContentTitle("Vantage phone client")
.setContentText("Service running")
.setContentIntent(pendIntent)
.setDefaults(Notification.DEFAULT_ALL)
.setAutoCancel(true)
.setOnlyAlertOnce(true)
.setOngoing(true);
notification = builder.build();
notification.flags |= Notification.FLAG_FOREGROUND_SERVICE;
startForeground(1, notification);