Я использую BroadcastReceiver
в моем Android приложение, которое просто содержит следующий фрагмент кода:Android sendBroadcast - ожидание BroadcastReceiver закончить
public BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
GcmIntentService.isHandled = true;
Toast.makeText(context, "broadcast receiver test", Toast.LENGTH_SHORT).show();
}
}
Я использую этот приемник, чтобы определить, является ли моя деятельность работает и выполнять некоторые обновления в ListView без каких-либо уведомлений, созданных GcmIntentService.
С кодом, который до сих пор был простым, только создавая сообщение тоста, я не могу поймать логическое значение от GcmIntentService.isHandled
, как только вызывается sendBroadcast
.
Возможно ли каким-либо образом определить, закончен ли код для моего приемника. Я понимаю, что sendBroadcast
- это асинхронный вызов, и я до сих пор использую Thread.sleep(1000)
, чтобы дождаться значения isHandled, но было бы неплохо, если бы был более надежный метод для достижения этого.
Любые мысли?
Где вы вызываете 'Thread.sleep()'? –
в моем классе 'GcmIntentService', который расширяет' IntentService' – Zishan
Вам нужно показать больше кода. Ваша архитектура неясна, и ваша проблема также неясна. –