【问题标题】:How to navigate to a fragment from a class extending BroadcastReceiver using the new Navigation Architecture Components如何使用新的导航架构组件从扩展 BroadcastReceiver 的类导航到片段
【发布时间】:2021-03-20 16:29:11
【问题描述】:

我有我的广播接收器,它应该扫描传入的消息并使用捆绑包并使用新的导航架构组件和导航控制器将原始地址和消息传递给新片段。我被卡住了,因为我在广播接收器中找不到视图。这是我到目前为止所尝试的。

public class SimpleSmsReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        Bundle pudsBundle = intent.getExtras();
        Object[] pdus = (Object[]) pudsBundle.get("pdus");
        SmsMessage messages = SmsMessage.createFromPdu((byte[])pdus[0]);

        Bundle bundle = new Bundle();
        bundle.putString("MessageNumber", messages.getOriginatingAddress());
        bundle.putString("Message", messages.getMessageBody());

        Navigation.findNavController(context).navigate(R.id.nav_otp_fragment, bundle);


    }

}

我收到错误必需类型:提供的视图:上下文

【问题讨论】:

    标签: android android-activity broadcastreceiver android-architecture-navigation android-architecture


    【解决方案1】:

    BroadcastReceivers 不是 UI 组件。您无法对BroadcastReceiver 中的 UI 执行任何操作。如果您的BroadcastReceiver 引用了您的Activity,那么它可以调用Activity 中的一个方法(以数据作为参数),以便Activity 然后可以创建Fragment 并执行其他任何必要的操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-29
      • 1970-01-01
      • 2022-11-28
      相关资源
      最近更新 更多