如果我的應用程序處於活動狀態,我希望在收到GCM時在當前活動中顯示彈出窗口。GCM IntentService如何在通知上顯示彈出窗口
我想訪問GcmIntentService我目前的活動,但我不認爲這是可能的,或者進行一個好辦法...
誰能幫助我?
解決方案
在我GcmIntentService.java:
@Override
protected void onHandleIntent(Intent intent) {
...
Intent broadCastIntent = new Intent("client_notifications_broadcast");
broadCastIntent.putExtra("data", extras.getString("other"));
LocalBroadcastManager.getInstance(this).sendBroadcast(broadCastIntent);
...
}
在我的MainActivity的,我想我添加一個對話框與自定義佈局彈出的所有活動延伸:
@Override
protected void onCreate(Bundle savedInstanceState) {
...
mMessageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String dataString = intent.getStringExtra("data");
final Dialog dialog = new Dialog(ClientMainActivity.this);
dialog.setContentView(R.layout.custom_dialog_popup);
dialog.setTitle("Title...");
// set the custom dialog components - text, image and button
TextView text = (TextView) dialog.findViewById(R.id.text);
text.setText("Android custom dialog example!");
ImageView image = (ImageView) dialog.findViewById(R.id.image);
image.setImageResource(R.drawable.ic_launcher);
TextView dialogButton = (TextView) dialog.findViewById(R.id.dialogButtonOK);
// if button is clicked, close the custom dialog
dialogButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
Log.d("receiver", "Got message: " + dataString);
}
};
LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver, new IntentFilter("client_notifications_broadcast"));
}
看起來不錯我馬上試試 – Labe 2014-09-18 21:34:28
@labe酷。讓我知道事情的後續。 :) – 2014-09-19 03:59:02
它運作良好 我用我的代碼更新問題 謝謝! – Labe 2014-09-19 10:06:10