Как сохранить связанную службу в течение жизненного цикла приложения? - PullRequest
0 голосов
/ 19 апреля 2020

Я запускаю и привязываюсь к Service, как это внутри моего MainActivity.java:

   @Override
    protected void onStart() {
        super.onStart();
        Intent intent = new Intent(this, WebSocket.class);
        bindService(intent, webSocket_connection, Context.BIND_AUTO_CREATE);
    }

Я вообще не звоню startService(intent) внутри моего приложения

Мой вопрос, как обеспечить, чтобы связанная служба продолжала работать в течение жизненного цикла моего приложения? Как перезапустить его, если оно будет убито системой (если основное приложение все еще работает)?

1 Ответ

0 голосов
/ 19 апреля 2020

По поведению срок службы связанного ресурса - до тех пор, пока последний компонент не свяжется с ним, не вызовет отмену или уничтожение. Несколько компонентов могут привязываться к сервису одновременно, но когда все они отменяют привязку, сервис уничтожается.

Таким образом, в вашем случае вам нужно, чтобы служба работала во время жизненного цикла приложения. Вы можете привязать Сервис к своему первому Activity, который является вашей Домашней деятельностью за слово, а затем связываться впоследствии при открытии дальнейших Активностей (только если требуется). Таким образом, Последней Активностью, которая будет закрыта, когда ваше приложение близко, будет Домашняя Активность, она будет unbind и служба остановится, потому что это был последний ограниченный компонент.

Примечание -> Убедитесь, что вы вызываете bind и unbind надлежащие методы жизненного цикла внутри Activity .. как onCreate -> onDestroy() или onStart() -> onStop().

...