2016-09-22 5 views
0

私は、インスタンス化されていない、または呼び出されていないBroadcastReceiverを持っています。BroadcastReceiverがインスタンス化されていません

Wi-Fi接続/切断イベントに応答する必要がありますが、そうではなく、スーパークラスのコンストラクタも呼び出されていません。

MainActivity:

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 
} 

BroadcastReceiver:

public class ConnectivityChangeReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     Log.v(TAG, "action: " + intent.getAction()); 
     Log.v(TAG, "component: " + intent.getComponent()); 
    } 
} 

のAndroidManifest.xml:<action>名が正しく設定されてい

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.test"> 

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <receiver 
      android:name=".ConnectivityChangeReceiver" 
      android:enabled="true"> 
      <intent-filter> 
       <action android:name="android.net.ConnectivityManager.CONNECTIVITY_ACTION" /> 
      </intent-filter> 
     </receiver> 
    </application> 

</manifest> 

答えて

1

。それはandroid.net.conn.CONNECTIVITY_CHANGEである必要があります。 hereと記載されている「定数値」を参照してください。

+0

ありがとうございましたが、私はもう別の問題があります:-)。警告:android.net.conn.CONNECTIVITY_CHANGEの放送受信者の宣言は、N以上のアプリを対象としています。一般に、アプリはこのブロードキャストに頼ってはならず、代わりにJobSchedulerまたはGCMNetworkManagerを使用するべきです。 – Rory

+0

はい、これはAndroid Nの変更です。Googleが行っている長期的な計画は、まだ起動していないアプリを目を覚ます可能性のあるすべてのブロードキャストを削除することです。これは、一般に不必要な多くのパワースラッシュを引き起こす。あなたはあなたの活動を使ってこの放送を動的に登録することができます。 –

関連する問題