В настоящее время у меня есть Служба, которая работает нормально, когда я ее запускаю, но когда я пытаюсь остановить ее, используя метод stopService, метод onDestroy не получает.
Вот код, который я использую, чтобы остановить службу
stop_Scan_Button = (кнопка) findViewById (R.id.stopScanButton);
stop_Scan_Button.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
Log.d("DEBUGSERVICE", "Stop Button pressed");
Intent service = new Intent(CiceroEngine. CICERO_SERVICE);
releaseBind();
Log.d("Stop_Scan_Button", "Service: " + service.toString());
stopService(service);
Log.d("Stop_Scan_Button", "Service should stop! ");
}
});
Я правильно понимаю, что когда используется stopService, он вызывает метод onDestroy для Сервиса? Когда я нажимаю кнопку остановки сканирования, метод onDestroy()
в моей службе не вызывается.
Есть ли что-нибудь еще, что мне не хватает, что я должен положить, чтобы остановить службу?
EDIT: для добавления onServiceConnected()
вызывается при запуске stopService вместо onServiceDisconnected()
, почему это происходит?
EDIT: Чтобы добавить дополнительную информацию о привязке
Я вызываю bindService в методе onCreate(), и затем у меня есть метод releaseBind(), отключающий службу.
Вот код для этого метода:
public void releaseBind(){
unbindService(this);
}
Итак, я полагаю, что развязка не моя проблема?