10

Service.onStartCommand()メソッドが実行されたときに通知を表示し、Service.onDestroy()呼び出されたときに通知を非表示にするアプリを作成しました。startService() および stopService() への通常の呼び出しでは正常に機能します。

サービスコード:

@Override
public IBinder onBind(Intent intent) 
{
    return null;
}
@Override
public void onCreate() 
{
    super.onCreate();
    nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
}

@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
    //Some  code here
    showNotification();
    return START_NOT_STICKY; 
}

@Override
public void onDestroy() 
{
    super.onDestroy();
    nm.cancel(R.string.service_started);
}

問題: Android OS() によってサービスが破棄された場合 (onDestroy()呼び出されなかった場合)、通知が削除されません。Android OS自体によってサービスが破棄されたときに通知を削除するにはどうすればよいですか?

4

5 に答える 5

0

使うだけ

stopForeground(true)

作業が完了すると、フォアグラウンド通知が破棄されます。

于 2020-03-27T09:58:52.843 に答える
0

サービスを停止したい場合はいつでもこれを使用する必要があります。これにより、通知が閉じられ、サービスが終了します。

stopService(new Intent(MainActivity.this,MyService.class));
于 2014-07-24T05:36:42.240 に答える
-2

ほとんどの場合、サービスを停止していません

于 2012-09-13T06:44:56.193 に答える