Android - 如何关闭startForeground启动的服务通知?

时间:2011-06-23 02:33:57

标签: java android

说我在我的应用程序服务中通过以下内容开始通知:

notification = new Notification(R.drawable.icon, getText(R.string.app_name), System.currentTimeMillis());
      Intent notificationIntent = new Intent(this, mainActivity.class);
      PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
      initService.notification.setLatestEventInfo(this, getText(R.string.app_name), "ibike rider", pendingIntent);

      startForeground(ONGOING_NOTIFICATION, notification);

我如何进行shutting down/cancelling这项服务?是否有可能在另一项活动中这样做?

感谢。

1 个答案:

答案 0 :(得分:1)

任何“已启动”服务(无论是后台服务还是前台服务)均可通过startService电话启动,并通过stopService电话停止。

如果您的服务可以在其onStartCommand实施中处理多个请求,那么您可以通过额外调用startService来管理其生命周期:

public int onStartCommand(Intent intent, int flags, int startId) {
  // ...

  if (intent.getAction().equals(STOP_MY_SERVICE)) {
    stopSelf();
    return START_STICKY;
  }

  if (intent.getAction().equals(START_FOREGROUND)) {

    // startForeground(...);

    return START_STICKY;
  }

  if (intent.getAction().equals(STOP_FOREGROUND)) {
    stopForeground(true);
    return START_STICKY;
  }

  // ...
  return START_STICKY;
}

有关示例,请参阅LocationService.java - GTalkSMS