Мне нужно отправить некоторые данные в мою службу при запуске приложения. Я поместил данные в Intent
, литой sendBroadcast(intent)
в onCreate
метод моей деятельности. Поэтому моя служба не получает никаких намерений. Но если я использую Handler.post
с обычным Runnable
в onCreate
все работает нормально. Может ли кто-нибудь объяснить мне такое странное поведение?Поведение sendBroadcast
Не работает на всех:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
broadcastIntent = new Intent(BROADCAST);
broadcastIntent.putStringArrayListExtra("URLs", alURLS);
sendBroadcast(broadcastIntent);
}
отлично работает:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
broadcastIntent = new Intent(BROADCAST);
broadcastIntent.putStringArrayListExtra("URLs", alURLS);
hDelayedPost = new Handler();
hDelayedPost.post(rHandleDelayedSendBroadcast);
}
private Runnable rHandleDelayedSendBroadcast = new Runnable() {
@Override
public void run() {
sendBroadcast(broadcastIntent);
}
};
Да, это то, что я на самом деле имел в виду. – Outofdate
@Outofdate: Как вы регистрируете свой «BroadcastReceiver»? – CommonsWare
В моем сервисе override метод 'onCreate':' registerReceiver (broadcastReceiver, новый IntentFilter (MainActivity.BROADCAST)); ' – Outofdate