2

В моем заявлении у меня есть деятельность и обслуживание, деятельность которых называется startService и bindservice (для связи между сервисом и деятельностью).android: переменные служебного члена становятся нулевыми после закрытия приложения

При запуске socket communication инициализируется, а также один Messanger handler инициализирован для возврата ответа на действие. Он работает нормально, когда приложение запущено и работает.

После того, как приложение принудительно закрыто пользователем, служба автоматически запускается автоматически, что я вижу в logcat. Здесь сокет также инициализирован. Но Messanger handler по-прежнему является нулевым, поскольку он был ранее инициализирован методом mMyService.setHandler(handler), который вызывает операцию, но на этот раз его вызвал, когда служба перезапустилась автоматически.

Как я могу осуществлять связь между деятельностью и службой после закрытия приложения. Служба работает, но активность находится в состоянии смерти.

Пожалуйста, помогите мне. Я потратил много времени на это.

Любая помощь будет оценена по достоинству.

Заранее спасибо.

+0

Что вы хотите, чтобы произошло? –

+0

@DavidWasser да, правильно. Действия все исчезли, и моя служба была перезапущена, так как я использовал STICKY. Теперь, как я могу общаться между службой и активностью? –

ответ

1

Как только у вас есть сила, закрывающая приложение, вы не можете общаться с Activity. Это прошло. Мертв.

Что вы можете сделать, это признать ситуацию (например, вы можете проверить, если handler == null и если так можно автоматически запускать активность от службы, как это:

if (handler == null) { 
    Intent intent = new Intent(this, MyActivity.class); 
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(intent); 
} 
+0

Спасибо за ваш ответ. Я попытаюсь применить это обходное решение –

Смежные вопросы