Android BroadcastReceiver Thread / Timer как статическая переменная экземпляра - PullRequest
0 голосов
/ 24 апреля 2011

Сайт разработчика Android утверждает, что процесс BroadcastReceiver может быть удален после возврата из метода onReceive () и что вам не следует запускать потоки / таймеры в BroadcastReceiver.Но как это связано со статическими переменными экземпляра класса Thread / Timer?Я предполагаю, что эти статические переменные экземпляра все еще существуют, потому что они связаны с загруженным классом?Или я не прав (например, потому что процесс запускается в новой JVM dalvik) и мне никогда не следует использовать потоки / таймеры в BroadcastReceivers?

1 Ответ

1 голос
/ 25 апреля 2011

Или я не прав (например, потому что процесс запущен в новой JVM dalvik) и мне никогда не следует использовать потоки / таймеры в BroadcastReceivers?

Если в манифесте зарегистрировано BroadcastReceiver, не выполняйте ветвление потоков, запускайте таймеры, регистрируйте прослушиватели и иным образом не делайте ничего, связанного с этим получателем, которое могло бы находиться за пределами получателя. Если в вашем приложении больше ничего не работает, ваш процесс может быть прерван в любое время, забрав ваши вещи с собой.

Если BroadcastReceiver зарегистрирован через registerReceiver() от какого-либо другого компонента, этот другой компонент может создавать ветки, запускать таймеры, регистрировать прослушиватели или что-либо еще, в соответствии с обычными правилами этого компонента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...