2016-05-06 4 views
1
コンパイルすることができませんでし

Activityクラスで "BroadcastReceiverを実装し、" コンパイルすることができませんでし:エラーでActivityクラス</p> <p>で "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> 

私は知っておきたい拡張アクティビティクラスでBroadCastReceiverを利用する方法。

+0

Here続きを読みます – zyamys

答えて

1

BroadcastReceiveraは何であることを最初に理解することが重要であり、それがどのように実装されています。

放送受信機(ショート受信機)を使用すると、システムやアプリケーションのイベントを登録することができますAndroidのコンポーネントです。このイベントが発生すると、Androidランタイムは、登録されたすべてのイベントの受信者に通知します。

受信側の実装クラスは、BroadcastReceiverクラスを拡張しています。

だからは実装できません、これはクラスであり、インターフェイスではありません。

私はこのようなブロードキャストレシーバーを使用するように活動クラスの内部クラスを作成することをお勧め:。

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); 
     } 
    } 

は `BroadcastReceiver`は抽象クラスではなくインターフェイスである

関連する問題