내 브로드 캐스트 수신기에 문제가 있습니다.BroadcastReceiver에는 인터넷 연결이 없습니다.
오전 6시에 알람을 설정 했으므로 인터넷 수신기의 일부 데이터를 다운로드하고 처리해야하는 방송 수신인을 해고해야합니다.
예를 들어 오후 3시에 알람을 설정하면 정상적으로 작동합니다. 하지만 문제는 6시에 있으며 네트워크 연결이 없기 때문에 다운로드가 실패합니다.
다운로드를 시도하기 전에 부분적인 잠김 잠금을 수행합니다. 이것과 관련 될 수 있습니까? 전화가 잠을 많이 자고 부분적인 잠에서 잠김으로 충분하지 않습니까?
그 밖의 무엇입니까? 네트워크 데이터가 활성화 된 상태로 전화를 두 번 확인했습니다. 야간에 이메일과 whatsapp를 수신합니다.
안드로이드가 연결을 복구 할 수있는 방법이 있습니까?
어떤 힌트 나 도움도 환영합니다!
안부 인사, Federico.
내 코드 : 브로드 캐스트 리시버에서
OnReceive 방법 :
@Override
public void onReceive(Context context, Intent intent) {
...
// acquire partial wake lock
_PowerManager.acquire();
// check internet access
if (!_Utils.isDataEnabled()){
// here is where it enters at 6am, isDataEnabled return false, so it enters here
_Log.d("_BroadcastReceiver_Synchronize:onReceive","No internet, cancel sinc");
// release partial wake lock
_PowerManager.release();
return;
}
// excecute async task that downloads data
_WebServicesGet ws = new _WebServicesGet(null, null, null);
ws.syncAll(this, false);
return;
}
가 _Utils.isDataEnabled :
public static Boolean isDataEnabled() {
// this method returns false at 6am
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
매니페스트에 인터넷 사용 권한을 설정 했습니까? – Gonzalo
https://developer.android.com/training/monitoring-device-state/doze-standby.html – CommonsWare
Gonzalo에게 감사드립니다. 예, 내 앱에 인터넷 권한이 있습니다. –