我想从 onMessage 中更新 UI。
例如使用更新进度条,怎么做?
弥敦道
我想从 onMessage 中更新 UI。
例如使用更新进度条,怎么做?
弥敦道
看一下GCM 示例的工作方式。它使用以下方法与主要活动通信并更新 GUI:
static void displayMessage(Context context, String message) {
Intent intent = new Intent(DISPLAY_MESSAGE_ACTION);
intent.putExtra(EXTRA_MESSAGE, message);
context.sendBroadcast(intent);
}
然后使用 BroadcastReceiver 在主 Activity 中捕获意图:
private final BroadcastReceiver mHandleMessageReceiver =
new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String newMessage = intent.getExtras().getString(EXTRA_MESSAGE);
mDisplay.append(newMessage + "\n");
}
};
因此,您可以使用类似的方法与您的主要活动进行通信以更新 GUI。
有一个很好的答案可以弄清楚,我也希望你使用这些代码。您可以通过在您的活动中将其放在 onResume 上来获得意图。
将这些代码放在 GCMBaseIntentService 的 onMessage 中
if(isRunningActivity()){
Intent pushReceivedIntent = new Intent(ACTION_PUSH);
pushReceivedIntent.putExtras(intent.getExtras());
context.sendBroadcast(pushReceivedIntent);
return;
}
然后您可以使用接收器接收该意图
//register as BroadcastReceiver for Push Action
IntentFilter filter = new IntentFilter();
filter.addAction(NotificationProcessor.ACTION_PUSH);
mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// put here codes what you want
}
};
registerReceiver(mReceiver, filter);
如果您有任何问题,请发表任何评论。希望对你有帮助