【问题标题】:Android - Getting context from a Broadcast receiver onReceive() to send toAndroid - 从广播接收器 onReceive() 获取上下文以发送到
【发布时间】:2011-05-06 05:08:12
【问题描述】:

我基本上想制定一个意图并将其从我的 BroadcastReceiver 的 onReceive() 传递给服务。

到目前为止,我一直使用 View.getContext(),但在这里,我被卡住了。 我怎样才能获得上下文以便我可以使用public Intent (Context packageContext, Class<?> cls)

【问题讨论】:

    标签: android android-intent service broadcastreceiver android-context


    【解决方案1】:
    public abstract void onReceive(Context context, Intent intent)
    

    onReceive 为您提供上下文。你还想要什么?

    【讨论】:

    • 哦,说真的,我直到看到这个才看到它。
    • 这不起作用。我正在尝试从服务调用广播,而我想要获取的上下文是 MyService 对象,但 context 参数是 ReceiverRestrictedContext 对象。
    【解决方案2】:

    好吧,上面提到的答案没有任何用处。只要您在 onReceive 中,就可以使用上下文。一旦你的代码从 onReceive 返回,上下文就不再存在了。

    所以你的问题陈述说你想在你的意图创建中使用这个上下文启动服务,然后用这个上下文对象调用 startService。那是做不到的。

    阅读此内容在 BroadcastReceiver 上下文中可以做什么和不可以做什么。

    http://developer.android.com/reference/android/content/BroadcastReceiver.html

    【讨论】:

    • 你说的不是真的。您可以从 BroadcastReceivers 启动服务,但不能绑定到它们。
    【解决方案3】:

    在BroadcastReceiver中

    onReceive(Context context, Intent intent)
    

    方法提供上下文

    所以

    开始活动使用

    context.startActivity(intent);
    

    并开始使用服务

    context.startService(intent);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-06
      • 1970-01-01
      • 2016-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多