无法在Activity类中编译“实现BroadcastReceiver”

时间:2016-05-06 02:19:15

标签: java android broadcastreceiver

无法在Activity类

中编译“实现BroadcastReceiver”

错误:

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

WifiController.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。

1 个答案:

答案 0 :(得分:1)

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

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

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

所以无法实现,它是一个类,而不是一个接口。

我建议在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