Я пытаюсь выяснить, как работает Android, когда речь идет о проблемах жизненного цикла.
Я решил иметь долговременную Службу для хранения моих TCP-соединений и прочего.
У меня есть одно действие, StartupActivity. Это действие запускает службу, а затем я нажимаю кнопку, чтобы завершить действие. Затем я снова запускаю то же приложение / Activity, и, таким образом, startService выполняется снова.
Однако я ожидал, что служба все еще будет работать (не было вызвано onDestroy), но метод onCreate в службе все еще выполняется.
Почему?
ШАГ 1: onCreate в StartupActivit выполняется:
@Override
protected void onCreate(android.os.Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.startup);
startService(new Intent(StartupActivity.this, SamcomService.class));
registerReceiver(connectionReceiver, new IntentFilter("STARTUP_PROGRESS_MESSAGE"));
registerReceiver(connectionReceiver, new IntentFilter("STARTUP_FINISH"));
final Button button = (Button) findViewById(R.id.buttonExit);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
finish();
}
});
}
ШАГ 2: Я нажимаю кнопку и вызывается Activity.finish () (я возвращаюсь на домашний экран)
ШАГ 3: я снова запускаю приложение, и снова запускается onCreate для Activity, таким образом, запускается та же служба
Теперь, когда я запускаю приложение во второй раз, Служба должна работать ( как это проверить? ). Я не видел тост, который отображается, когда вызывается служба onDestroy, а также я вижу уведомление о том, что служба создает (и удаляет onDestroy).
Однако onCreate выполняется во второй раз. Теперь у меня одновременно работает несколько служб?