android – 如何从Broadcast Receiver向正在运行的活动发送数据,

android – 如何从Broadcast Receiver向正在运行的活动发送数据,,第1张

概述我能够很好地接收C2DM消息,但我想将数据发送到正在运行的活动,即当活动正在运行时,如果接收方收到C2DM消息,则将数据发送到正在运行的活动.接收者的代码是(代码中没有错误): public class C2dmreceiver extends BroadcastReceiver { @Override public void onReceive(Context context, 我能够很好地接收C2DM消息,但我想将数据发送到正在运行的活动,即当活动正在运行时,如果接收方收到C2DM消息,则将数据发送到正在运行的活动.接收者的代码是(代码中没有错误):
public class C2dmreceiver extends broadcastReceiver {    @OverrIDe    public voID onReceive(Context context,Intent intent) {        String action = intent.getAction();        Log.w("C2DM","Message Receiver called");        if ("com.Google.androID.c2dm.intent.RECEIVE".equals(action))         {            final String payload = intent.getStringExtra("key1");               Log.d("C2DM","message = " + payload );       }     }}

我在活动中尝试了这样的尝试在活动中注册接收器,以便接收器可以发送数据,并且运行活动可以接收数据: –

C2dmreceiver c2dmr = new C2dmreceiver();Registration.this.registerReceiver(c2dmr,new IntentFilter());

我不知道在IntentFilter()中放什么,还有什么我必须放在活动的代码和接收器的代码中,这样当活动运行时,一些C2DM消息到来,接收器可以发送数据到正在运行的活动.

因此,请告诉我要放入活动和接收器的代码,也可以在清单中,以便来自接收器的数据可以发送到正在运行的活动.

任何建议都非常感谢.

解决方法 首先,在活动中订阅c2dm接收器并不是最好的主意.在清单中做.要将数据传递给活动,您可以在Activity中创建静态字符串字段,并在那里设置String.

你可以这样做:

在活动中

public static YourActivity mThis = null;@OverrIDeprotected voID onResume() {    super.onResume();    mThis = this;}@OverrIDeprotected voID onPause() {    super.onPause();    mThis = null;}

在你的broadcastReceiver中:

@OverrIDepublic voID onReceive(Context context,Intent intent) {...if (YourActivity.mThis != null) {    ((TextVIEw)YourActivity.mThis.findVIEwByID(R.ID.text)).setText("received c2dm");}else {...}
总结

以上是内存溢出为你收集整理的android – 如何从Broadcast Receiver向正在运行的活动发送数据,全部内容,希望文章能够帮你解决android – 如何从Broadcast Receiver向正在运行的活动发送数据,所遇到的程序开发问题。

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

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

原文地址:https://www.54852.com/web/1137022.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存