Android:如何从 C2DMBaseReceiver 调用非静态函数?

标签 android android-c2dm

我正在使用 android-c2dm,我的​​设备成功地从它接收消息。我想调用一个非静态函数(在一个已经存在的 Activity 中)来对该消息做一些事情,但是简单地从 C2DMBaseReceiver 调用它是非法的。如何将此信息传回 Activity ?

编辑:如果我调用一个静态函数来分配变量(或设置共享首选项),然后调用一个将使用这些变量来完成需要完成的操作的处理程序,会怎样?这种风格不好吗?

最佳答案

您可以做的是以某种方式将消息详细信息放入 Intent 中(最粗略的方法是将消息序列化为 String 并将其添加为 Intent extra),然后使用 startActivity< 将该 Intent 发送到 Activity/。 Activity 可以检查额外的内容,知道它是一条消息,提取并反序列化消息,然后去镇上。

如果您想确保目标 Activity 的现有实例收到消息,您可能需要设置适当的启动模式或 Intent 标志。

关于Android:如何从 C2DMBaseReceiver 调用非静态函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6352829/

相关文章:

android - Firebase 未向手机号码发送 OTP

Android,如何在 C2DMReceiver 构造函数中获取上下文?

android - 下载谷歌 API

android - com.google.android.c2dm.intent.RECEIVE android 9(sdk 28)不起作用

java - Cordova构建android错误-ParseException:不支持的类文件版本53.0

android - WebView 错误。制作一个Android应用程序来查看我的网站

android - 无法验证用作 NDEF 标签的 MIFARE Classic 标签

android - ExoPlayer 使用自定义的 MediaCodecSelector

android - 是否可以检测到Android应用程序卸载?