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:
<?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>
Спасибо, это сработало, хотя у меня есть еще одна проблема :-). Предупреждение. Объявление трансляции для android.net.conn.CONNECTIVITY_CHANGE устарело для приложений с таргетингом N и выше. В общем, приложения не должны полагаться на эту трансляцию и вместо этого использовать JobScheduler или GCMNetworkManager – Rory
Да, это изменение с Android N. Долгосрочный план Google заключается в том, чтобы удалить всю трансляцию, которая может пробудить приложение, которое еще не запущено. Это вызывает много мошенничества, которое обычно не нужно. Вы можете регистрироваться для этой трансляции динамически, хотя, используя свою активность. –