Или я не прав (например, потому что процесс запущен в новой JVM dalvik) и мне никогда не следует использовать потоки / таймеры в BroadcastReceivers?
Если в манифесте зарегистрировано BroadcastReceiver
, не выполняйте ветвление потоков, запускайте таймеры, регистрируйте прослушиватели и иным образом не делайте ничего, связанного с этим получателем, которое могло бы находиться за пределами получателя. Если в вашем приложении больше ничего не работает, ваш процесс может быть прерван в любое время, забрав ваши вещи с собой.
Если BroadcastReceiver
зарегистрирован через registerReceiver()
от какого-либо другого компонента, этот другой компонент может создавать ветки, запускать таймеры, регистрировать прослушиватели или что-либо еще, в соответствии с обычными правилами этого компонента.