static - 如何在广播接收器 Android 中发送广播

标签 static broadcastreceiver non-static

我在服务中编写了一个内部类 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() 进行静态引用”

我认为的解决方案是动态注册广播接收器并在类之前删除“静态”。

这是最好的方法吗?

最佳答案

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

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);那个错误就会消失。

关于static - 如何在广播接收器 Android 中发送广播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18840339/

相关文章:

java - 重写(非)静态类中的私有(private)方法

c# - 关于 C# 和静态类和函数的问题

android - 将值从 Activity 传递到广播接收器并从广播接收器启动服务

java - 在非静态嵌套类中使用非静态数据成员而不使用对象

java - 调用非静态变量,以便它可以被另一个类使用(无法实例化)

python类变量按值查找

java - SmartGWT ListGrid 最终版

android - BroadcastReceiver 在几个小时后停止在小米上工作

java - 安卓 : Using Broadcasting Receiver

c++ - 在C++中无效使用非静态数据成员错误