Библиотека загрузчика OBB, похоже, использует Context.startService (...) для загрузки OBB в фоновом режиме, но на Android 8.0 это приводит к сбоям, если само приложение находится в фоновом режиме.Эта библиотека регистрирует BroadcastReceiver:
mConnReceiver = new InnerBroadcastReceiver(this);
IntentFilter intentFilter = new IntentFilter(
ConnectivityManager.CONNECTIVITY_ACTION);
intentFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
registerReceiver(mConnReceiver, intentFilter);
Приемник istelf:
private class InnerBroadcastReceiver extends BroadcastReceiver {
final Service mService;
InnerBroadcastReceiver(Service service) {
mService = service;
}
@Override
public void onReceive(Context context, Intent intent) {
pollNetworkState();
if (mStateChanged
&& !isServiceRunning()) {
Log.d(Constants.TAG, "InnerBroadcastReceiver Called");
Intent fileIntent = new Intent(context, mService.getClass());
fileIntent.putExtra(EXTRA_PENDING_INTENT, mPendingIntent);
// send a new intent to the service
context.startService(fileIntent);
}
}
};
Stack Stace Stace: Сбой службы Downloader
Итак, что такоепредпочтительный способ избежать таких сбоев?Или этот пользовательский опыт нормален в Android 8.0 +?