Android:从服务调用片段方法

2023-12-19

运行 Firebase Cloud 消息服务,我希望每次收到新消息时都会调用特定片段中的方法。

public class FirebaseMsgService extends FirebaseMessagingService {
    public FirebaseMsgService() {
    }


    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        super.onMessageReceived(remoteMessage);
        ServiceConnector serviceconnector =null;
        JSONObject data;
        String json = remoteMessage.getData().toString();
        try{
        data= new JSONObject(json);

          **Fragment.method(data);** 

        }
        catch(Exception e){


        }




    }

}


您可以使用LocalBroadcastManager

Service:

private void notifyFragment(String json){
    Intent intent = new Intent("nameOfTheAction");
    Bundle bundle = new Bundle();
    bundle.putString("json", json)); 
    intent.putExtras(bundle);
    LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
}

分段:

LocalBroadcastManager bm;

@Override
public void onAttach(Context context) {
    super.onAttach(context);
    bm = LocalBroadcastManager.getInstance(this);
    IntentFilter actionReceiver = new IntentFilter();
    actionReceiver.addAction("nameOfTheAction");
    bm.registerReceiver(onJsonReceived , actionReceiver);
}
 
    
private BroadcastReceiver onJsonReceived = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent != null) {
            String json = intent.getString("json")
            data = new JSONObject(json);
        }
    }
};
    
@Override
protected void onDetach() {
    super.onDetach();
    bm.unregisterReceiver(onJsonReceived);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android:从服务调用片段方法 的相关文章

随机推荐

  • java JPanel 如何固定大小

    我想要一个可调整大小的面板 它始终具有固定深度的顶部绿色面板 即所有高度变化都应仅影响黄色面板 我下面的代码几乎没问题 只是绿色面板的大小略有不同 我该怎么做呢 Panel setLayout new BoxLayout Panel Box
  • 没有 gorm.Model 列的 Gorm 查询

    如何省略来自 gorm Model 的列 例如 创建日期 修改日期 考虑以下模型 type User struct gorm Model Firstname string Lastname string 现在我可以选择特定列 db Sele
  • 将新的 wifiConfiguration 添加到 wifiiManager 时总是得到 -1

    我正在创建范围内 wifi 的列表并将其显示给用户 我希望用户可以选择列表中的每个项目并插入密码以便连接到所选的 SSID 我写了这个方法来连接wifi private WifiConfiguration wifiConf WifiConf
  • Android SDK (Nexus 5X API28 x86) 在准备安装时停止

    我最近选择了 Android SDK 并尝试配置 SDK 来测试程序 并可能进行一些基本的 Java 应用程序编程 我的问题是它显然无法完成其设置 除了冻结之外 开始按钮呈灰色 并且我无法访问 Google Play 商店 我确实可以访问
  • git push origin master 拒绝用户 X,其中 x 不是本地 git 配置中的用户

    以此开头我对 git 和 github 很陌生 我以用户 zzz 在 github 上设置了一个存储库 并且它正确地列在我的本地 特定于存储库的 git 配置文件中 当我这样做时 该文件具有如下所示的条目 git config local
  • Go 为什么没有 stackoverflows

    我在这个演示文稿中读到http golang org doc ExpressivenessOfGo pdf http golang org doc ExpressivenessOfGo pdf第 42 页 Safe 没有堆栈溢出 这怎么可能
  • 为什么 setTimeout(.., 0) 不立即执行?

    var timeout setTimeout function console log I m message from timeout 0 console log I m message from outside timeout 1 I
  • 字节比布尔[8]更有效[重复]

    这个问题在这里已经有答案了 如果我在一个类中需要 8 个布尔成员变量 Java 是否可以有效地将它们全部放在一个字节中 或者它会为每个使用一个字节吗 换句话说 内存占用是否不同 boolean a boolean b boolean c b
  • Pandas 从组中获取列的第一个和最后一个值

    嗨 我有dataframe包含同一 ID 的多行 其中一列是日期 按升序排列 我想计算第一个条目和最后一个条目之间的日期差 我通过实例化 pandas 构造函数来实现此目的 如下所示 g df groupby ID print pd Dat
  • CKEditor 按键事件未正确更新文本

    我有以下代码 当用户在 CKEditor 文本区域内键入内容时 自动更新 div 内的内容 CKEDITOR instances editor on key function e var preview document getElemen
  • C++矢量源代码

    我正在尝试获取向量源代码以了解标准 std 或 stl 向量是如何实现的 这是出于学习目的 现在的问题是我在哪里可以找到源代码 甚至其他 C 容器的源代码也有帮助 不存在 标准 向量 标准定义了行为和接口 以及一些实现细节 例如连续存储 但
  • DataType 属性破坏日期时间字段上的 jQuery 日期选择器

    我在用MVC 4 and 剃刀视图我无法理解为什么我的日期字段上的编辑视图没有正确绑定到内置 jQuery 日期选择器 该字段是数据类型Date在数据库中 以及DateTime在域模型中 我不想显示时间 只想显示日期 该字段是必填字段 需要
  • 透明度实际上是如何实现的?

    给定两个图像 A B 我想要第三个图像 C 就好像 B 的透明度为 t 0 5 并放置在 A 的顶部 现实中C是如何计算的以及n如何影响它 我对任何程序或伪代码都不感兴趣 我只想知道基本原理 我认为 C 的一种方式只不过是 A 和 B 的交
  • ImportError:colab google 中没有名为 object_detection.builders 的模块

    我运行时出现此错误 cd git clone quiet https github com tensorflow models git apt get install qq protobuf compiler python tk pip i
  • 为什么不为 Rspec + Selenium 使用共享 ActiveRecord 连接?

    处理 Selenium 和测试的最普遍接受的方法似乎是避免使用事务固定装置 然后在测试 场景之间使用诸如 database cleaner 之类的东西 我最近遇到了以下情况article http blog plataformatec co
  • 为什么 Eclipse 的 Egit 中 Commit 是灰色的

    EGit 中的提交按钮神秘地变灰了 几天前还运行得很好 有谁知道如何解决这一问题 我在谷歌上没有找到任何线索 我会附上屏幕截图 但我还没有足够的声誉点 我遇到了这个问题 发现在远程获取和合并后我有未暂存的更改 将未暂存的更改移至 Git S
  • null 不是对象(评估“ShareDialog.canShow”)

    我有这样的代码 import React Component from react import AppRegistry StyleSheet Text TouchableHighlight View from react native i
  • Sitecore Field Renderer - 在渲染内添加标记

    作为 SEO 增强项目的一部分 我的任务是在字段渲染器在页面上生成的图像的标记内添加以下属性 itemprop contentURL 在结束标签之前
  • 如何将PIL Image.image对象转换为base64字符串? [复制]

    这个问题在这里已经有答案了 我正在尝试以 90 度旋转的方式操作 Base64 编码的图像 经过此操作 我想将其转换回 Base64 字符串 但不幸的是还无法实现这一目标 这是我到目前为止所做的 image string StringIO
  • Android:从服务调用片段方法

    运行 Firebase Cloud 消息服务 我希望每次收到新消息时都会调用特定片段中的方法 public class FirebaseMsgService extends FirebaseMessagingService public F