Ich versuche, mein Gerät aufzuwecken, um eine Netzwerkanforderung zu stellen. Wenn ich den Wecker auf ein oder zwei Minuten stelle. Es funktioniert perfekt. Aber wenn ich es auf ungefähr 10 Minuten einstelle und meine Anzeige abstelle, wird der Alarm ausgelöst, aber Volley wirft einen "NoConnectionError" wie im Titel gezeigt.volley NoConnectionError: java.net.UnknownHostException
Ich habe recherchiert, ich habe meinen Empfänger mit einem WakeFullBroadCastReceiver implementiert. Danach bekam ich das gleiche Problem. Ich recherchierte weiter und fügte meinem WLAN eine Sperre hinzu. Trotzdem bekomme ich denselben Fehler.
Bitte jede Hilfe wird geschätzt.
Empfänger:
@Override
public void onReceive (Context context, Intent intent) {
Log.i("Receiver", "Called here");
Intent serIntent1 = new Intent(context, FetchTodayWordService.class);
startWakefulService(context, serIntent1);
}
Dienst
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i("SERVICE", "started");
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
lock = wifiManager.createWifiLock(WifiManager.WIFI_MODE_FULL, "LockTag");
lock.acquire();
MakeRequest(intent);
return START_STICKY;
}
@Override
protected void onHandleIntent (Intent intent) {
Log.i("OUTPUT", "Service called");
MakeRequest(intent);
}
public void MakeRequest(final Intent intent)
{
if (intent == null) return;
JsonObjectRequest jsonObjectRequest =
new JsonObjectRequest
(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse (JSONObject response) {
lock.release();
wordDay = ParseWordDay.ParseJSON(response);
if(wordDay != null)
{
new StoreData().DoWork(getApplicationContext(), wordDay, intent);
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse (VolleyError error) {
TodayWordReceiver.completeWakefulIntent(intent);
lock.release();
Log.i("OUTPUT", String.valueOf(error));
}
});
MySingleton.getInstance(getApplicationContext()).addToRequestQueue(jsonObjectRequest);
}
Einstellung Alarm:
private void SetAlarm() {
int alarmType = AlarmManager.ELAPSED_REALTIME;
final int TIME = 1000 * 60 * 5;
Intent intent = new Intent(this, TodayWordReceiver.class);
/*boolean alarmUp = (PendingIntent.getBroadcast(getApplicationContext(),
1, intent, PendingIntent.FLAG_NO_CREATE) != null);
if (!alarmUp)
{*/
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 1, intent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(alarmType, SystemClock.elapsedRealtime() + TIME,
TIME, pendingIntent);
Toast.makeText(this, "Alarm Set", Toast.LENGTH_SHORT).show();
/*}else Toast.makeText(MainActivity.this, "ALarm already set", Toast.LENGTH_SHORT).show();*/
}
Fehlerausgang:
04-29 23:48:23.125 15702-15702/com.example.clinton.light I/Receiver: Called here 04-29 23:48:23.145 15702-15702/com.example.clinton.light I/SERVICE: started 04-29 23:48:23.175 15702-15702/com.example.clinton.light I/OUTPUT: com.android.volley.NoConnectionError: java.net.UnknownHostException: Unable to resolve host "api.wordnik.com": No address associated with hostname
Jede Hilfe wird wirklich geschätzt. Ich kann deine Antwort möglicherweise nicht markieren, ich habe nicht genug Punkte.
Überprüfen Sie Ihre erweiterten Wifi-Einstellungen auf Ihrem Gerät und prüfen Sie, ob "WLAN im Schlaf eingeschaltet" auf "immer" eingestellt ist – freddieptf
Ist auf "immer" eingestellt. –