私はネットワーク要求をするために私のデバイスを起動しようとしています。私が1〜2分にアラームを設定したとき。それは完全に動作します。しかし、私は約10分に設定し、私のディスプレイをオフにすると、アラームが発生しますが、ボレーはタイトルに示されているように "NoConnectionError"をスローします。volley NoConnectionError:java.net.UnknownHostException
私はそれについて研究しました、私はWakeFullBroadCastReceiverを使用して受信機を実装しました。その後、私は同じ問題を抱えていました。私はさらに調査し、私のWiFiにロックを追加しました。それでも、私は同じエラーが発生しています。
ご了承ください。
受信機:
@Override
public void onReceive (Context context, Intent intent) {
Log.i("Receiver", "Called here");
Intent serIntent1 = new Intent(context, FetchTodayWordService.class);
startWakefulService(context, serIntent1);
}
サービスアラームを設定する
@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);
}
:
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();*/
}
エラー出力:
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
本当にありがとうございます。私はあなたの答えをマークすることができないかもしれない、私は十分なポイントがありません。
端末のWi-Fiアドバンス設定を確認し、「スリープ中にWi-Fiをオンにする」が「常に」に設定されているかどうかを確認してください – freddieptf
「常に」に設定されています。 –