android–GCM IntentService如何显示d出通知接收

android–GCM IntentService如何显示d出通知接收,第1张

概述我希望,在收到GCM时,如果我的应用处于活动状态,则在我当前的活动上显示一个Popup.我想在GcmIntentService中访问我当前的活动,但我不认为这是可能的或继续下去的好方法…谁能帮我?解在我的GcmIntentService.java中:@OverrideprotectedvoidonHandleIntent(Intentintent){

我希望,在收到GCM时,如果我的应用处于活动状态,则在我当前的活动上显示一个Popup.

我想在GcmIntentService中访问我当前的活动,但我不认为这是可能的或继续下去的好方法…

谁能帮我?

在我的GcmIntentService.java中:

@OverrIDeprotected voID onHandleIntent(Intent intent) {  ...  Intent broadCastIntent = new Intent("clIEnt_notifications_broadcast");  broadCastIntent.putExtra("data", extras.getString("other"));  LocalbroadcastManager.getInstance(this).sendbroadcast(broadCastIntent);  ...}

在我想要d出窗口的所有活动扩展的MainActivity中,我添加了一个带有自定义布局的Dialog:

@OverrIDeprotected 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"));}

解决方法:

好吧,你可以使用Localbroadcast.见LocalBroadcast Manager.
对于如何实施,how to use LocalBroadcastManager?就是一个很好的例子.

Localbroadcast Manager is a helper to register for and send broadcasts of Intents to local objects within your process. The data you are broadcasting won’t leave your app, so don’t need to worry about leaking private data.`

您的活动会注册此本地广播.从服务中你从onMessage中发送一个Localbroadcast(说嘿,我收到了一条消息.显示它的活动).然后在您的活动中,您可以收听广播.这样,如果活动位于最前面/处于活动状态,它将接收广播,否则不会.因此,每当您收到本地广播时,如果活动开放,您可以执行所需的 *** 作.

如果您想为整个应用程序做,那么您可以使所有活动扩展为抽象活动.在这个抽象活动类中,你可以为这个’Localbroadcast’注册它.其他方式是在您的所有活动中注册Localbroadcast(但是您必须管理如何仅显示消息一次).

希望它能帮到你.

总结

以上是内存溢出为你收集整理的android – GCM IntentService如何显示d出通知接收全部内容,希望文章能够帮你解决android – GCM IntentService如何显示d出通知接收所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1096400.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存