我在我的Android應用它只是包含了下面的一段代碼使用BroadcastReceiver
:如果我的活動運行的Android sendBroadcast - 等待廣播接收器來完成
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生成任何通知。
由於代碼很簡單,只創建Toast消息,我無法在調用sendBroadcast
時立即從GcmIntentService.isHandled
中捕獲布爾值。
是否有可能以任何方式確定我的接收器的代碼是否已完成運行。據我所知,sendBroadcast
是一個異步調用,目前我正在使用Thread.sleep(1000)
來等待isHandled值,但如果有更可靠的方法來實現這一點,那將會很不錯。
有什麼想法?
你在哪裏調用'Thread.sleep()'? –
在我的'GcmIntentService'類中擴展了'IntentService' – Zishan
你需要顯示更多的代碼。你的架構不清楚,你的問題也不清楚。 –