У меня есть android действие с BroadcastReceiver, как показано ниже.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver, intentFilter);
}
private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.i("TAG", intent.getAction());
}
};
Проблема в том, что я получаю сообщение из сети и в зависимости от типа сообщения я создаю действие или отправляю сообщение Broadcast в действие, так как я получаю сообщение очень быстро, тип сообщения для создания действия прибывает непосредственно перед (в течение нескольких миллисекунд) типом сообщения, чтобы отправить широковещательное сообщение той же операции, и я получаю ошибку handleWindowVisibility: no activity for token android.os.BinderProxy
, исследуя немного, я обнаружил, что действие может не быть создан правильно, прежде чем я отправлю широковещательный намерение Поэтому я заставил поток спать в течение 3 секунд.
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Теперь все работает, как и ожидалось, но вышеприведенное выглядит некрасиво и немного хаки sh, есть ли лучший способ отправить намерение трансляции прямо перед действием создание