说我在我的应用程序服务中通过以下内容开始通知:
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
这项服务?是否有可能在另一项活动中这样做?
感谢。
答案 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