我已经在服务中编写了一个内部类BroadcastReceiver。我想在BroadcastReceiver的onReceive()中向一个活动发送另一个广播。
我的代码是:
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,并在类之前删除"static“。
这是最好的方法吗?
发布于 2016-07-15 09:24:48
您必须更改代码,如下所示:
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);,这个错误就会消失。
https://stackoverflow.com/questions/18840339
复制相似问题