java - 无法在 Activity 类中编译 "implements BroadcastReceiver"

标签 java android broadcastreceiver

无法在 Activity 类中编译“implements BroadcastReceiver”

有错误:

Error:(12, 66) error: interface expected here
Error:(55, 5) error: method does not override or implement a method from a supertype

无线 Controller .java

public class WifiController extends AppCompatActivity implements BroadcastReceiver{
.....
    @Override
    public void onReceive(Context context, Intent intent) {

    }
}

AndroidMenifest.xml

<receiver android:name=".WifiController">
    <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
        <action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
    </intent-filter>
</receiver>

我想知道如何在扩展 Activity 类中使​​用 BroadCastReceiver。

最佳答案

首先了解什么是 BroadcastReceivera 及其实现方式很重要:

广播接收器(短接收器)是一个 Android 组件,允许您注册系统或应用程序事件。事件发生后,Android 运行时会通知事件的所有已注册接收者。

接收器的实现类扩展了 BroadcastReceiver 类

所以你不能实现它,它是一个类而不是一个接口(interface)。

我建议在您的 Activity 类中创建一个内部类以像这样使用 Broadcast Receiver:

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

    public class MyReceiver extends BroadcastReceiver {

      @Override
      public void onReceive(Context context, Intent intent) {
        // assumes WordService is a registered service
        Intent intent = new Intent(context, WordService.class);
        context.startService(intent);
      }
    } 

阅读更多 Here

关于java - 无法在 Activity 类中编译 "implements BroadcastReceiver",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37063204/

相关文章:

android - 在调用结束广播接收器中获取电话号码?

android - 使用广播接收器在 Android 中启动 AlarmManager?

Java正则表达式匹配相同特定字符序列之间的所有内容

java - 本类为两种不同产品 flavor

android - 在 onItemLongClick 中显示 AlertDialog 会给出有关父项的错误,我必须做什么?

java - 程序因文本字段为空而崩溃

android - Activity 终止后,BroadcastReceiver 不再被触发

支持源代码行排除的 Java 代码覆盖工具

java - 连接重置 - Java(底层套接字状态保持已建立)Azure VM

java - 使用 Eclipse(Android) 奇怪的错误