私のアプリでは、サービスをフォアグラウンドに配置して、次を使用してサービスが強制終了されないようにします。
startForeground(NOTIFY_ID, notification);
これにより、ユーザーへの通知も表示されます(これはすばらしいことです)。問題は、後で通知を更新する必要があることです。だから私はコードを使用します:
notification.setLatestEventInfo(getApplicationContext(), someString, someOtherString, contentIntent);
mNotificationManager.notify(NOTIFY_ID, notification);
問題は、これを行うと、サービスが特別なフォアグラウンドステータスから外れるのでしょうか。
この回答では、CommonsWareはこの動作が可能であることを示していますが、彼は確信が持てません。それで、誰かが実際の答えを知っていますか?
注:この質問から抜け出す簡単な方法はstartForeground()
、通知を更新するたびに繰り返し電話をかけることです。この代替案も機能するかどうかを知りたいと思っています。