Android 从同一服务的多个实例停止服务

Android 从同一服务的多个实例停止服务,android,android-intent,service,Android,Android Intent,Service,我正在制作一个闹钟应用程序。我使用intent启动服务 public void Start(View view) { hr = timePick.getCurrentHour(); min = timePick.getCurrentMinute(); service = new Intent(this,MyService.class); Bundle bundle = new Bundle(); bundle.putInt("HOUR", hr);

我正在制作一个闹钟应用程序。我使用intent启动服务

    public void Start(View view) {
    hr = timePick.getCurrentHour();
    min = timePick.getCurrentMinute();
    service = new Intent(this,MyService.class);
    Bundle bundle = new Bundle();
    bundle.putInt("HOUR", hr);
    bundle.putInt("MIN", min);
    service.putExtras(bundle);
    startService(service);

}
我通过电话停止服务

    public void Stop(View view) {
    hr = timePick.getCurrentHour();
    min = timePick.getCurrentMinute();
    Intent myAlarm = new Intent(this, MyAlarm.class);
    Intent myService = new Intent(this, MyService.class);
    Bundle bundle = new Bundle();
    bundle.putInt("HOUR", hr);
    bundle.putInt("MIN", min);
    myService.putExtras(bundle);
    myAlarm.putExtras(bundle);
    stopService(myAlarm);
    stopService(myService);
}
我可能有多个服务实例正在运行。但是,当我试图通过传递小时和分钟来停止服务的单个实例时,服务的所有实例都将停止。我在MyService服务中使用了alarmmanager。MyAlarm创建通知


我已把闹钟设为11点30分和11点40分。我想删除11.40的闹钟。所以我按下了停止按钮。但是这两个警报都会被取消,这是因为不存在运行同一服务的多个实例的情况,调用
startService(intent)
不会再次启动它只调用
onStartCommand
的服务的另一个实例

从文件中

启动服务的多个请求会导致对服务的onStartCommand()的多个相应调用。但是,只需要一个停止服务的请求(使用stopSelf()或stopService())即可停止服务。