Я хочу запустить службы из Broadcast Receiver, но Marshmallow и более поздние версии SDK не будут вызывать обратный вызов. BOOT_COMPLETED работает нормально с передним планом и фоном приложения, но CONNECTIVITY_CHANGE не работает с фоном.
Мне нужно получить обратный вызов, когда приложение с передним планом приложения &background.
Мой манифест :
<receiver
android:name=".receivers.MessageBroadCastReceiver"
android:enabled="true"
android:exported="false">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
Мой Приемник :
public class MessageBroadCastReceiver extends BroadcastReceiver {
private static final String TAG = "MessageBroadCastReceive";
private Context ctx;
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "AppBroad " + intent.getAction());
this.ctx = context;
if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
RestartMessageService();
} else if (intent.getAction().equals("android.net.conn.CONNECTIVITY_CHANGE")) {
RestartMessageService();
}
}
}
устал регистрироватьШироковещательные действия в моей основной деятельности работают нормально на переднем плане, как только я закрою свое приложение, оно не будет вызывать (Зефир и выше SDK).
Зарегистрированный код:
private void RegisterReceivers() {
try {
MessageBroadCastReceiver broadCastReceiver = new MessageBroadCastReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
getBaseContext().registerReceiver(broadCastReceiver, intentFilter);
PrefManager.getInstance(this).setBroadcastReg(true);
} catch (IllegalArgumentException e) {
e.printStackTrace();
}
}
Пожалуйста, дайте мне решение.
Заранее спасибо ...