【问题标题】:How to send broadcast in a broadcastreceiver Android如何在广播接收器 Android 中发送广播
【发布时间】:2013-09-17 02:26:52
【问题描述】:

我在 Service 中编写了一个内部类 BroadcastReceiver。我想在 BroadcastReceiver 的 onReceive() 中向 Activity 发送另一个广播。

我的代码是:

public static class ServiceBroadcastReceiver extends BroadcastReceiver
{

    @Override
    public void onReceive(Context context, Intent intent)
    {
        // TODO Auto-generated method stub
        Intent intent1 = new Intent("com.test.test");
        sendBroadcast(intent1); 
    }
}

但 Eclipse 提示“无法对非静态方法 sendBoradcast() 进行静态引用”

我想到的解决方案是动态注册broadcastreceiver,去掉class前的“static”。

这是最好的方法吗?

【问题讨论】:

    标签: static broadcastreceiver non-static


    【解决方案1】:

    您必须更改您的代码,例如:

    public static class ServiceBroadcastReceiver extends BroadcastReceiver  {
        @Override
        public void onReceive(Context context, Intent intent) {
            Intent intent1 = new Intent("com.test.test");
            context.sendBroadcast(intent1); 
        }
    }
    

    现在,您只需致电 sendBrodcast()。这样,您使用的是父类 (Service) 中的方法。这是错误的,因为您正在从静态类内部访问非静态成员。

    所以,使用context.sendBroadcast(intent1);,错误就会消失。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-16
      • 1970-01-01
      相关资源
      最近更新 更多