Что происходит с потоками ACTIVITY, если ЭКРАН отключен и отсоединен от зарядного устройства? - PullRequest
0 голосов
/ 12 мая 2011

У меня есть приложение, которое работает в сеансе пользователя, который поддерживается между сервером и устройством. Я использую технику пинга, чтобы поддерживать сеанс между устройством и сервером, пингуя сервер каждые 1 минуту, если пользователь вошел в систему. Это делается с помощью фонового потока.

  1. Иногда, когда я выключаю экран и отсоединяю устройство от источника питания, фоновый поток прерывается.

  2. Иногда поток активен, но мои WiFi-антенны выключены, и мой пинг не работает.

Мой подход правильный? Есть ли лучший способ сделать это?

Мое требование: мне нужно пинговать свой сервер каждую минуту, чтобы поддерживать сеанс по разным причинам, и я должен делать это только в том случае, если пользователь вошел в систему.

Ответы [ 2 ]

1 голос
/ 12 мая 2011

Вы можете использовать это, чтобы проверить ваше Wi-Fi соединение

private boolean checkInternetConnection()
{
    ConnectivityManager conMgr = (ConnectivityManager) getSystemService (Context.CONNECTIVITY_SERVICE);
    return conMgr.getActiveNetworkInfo().isConnectedOrConnecting();
}

Если checkInternetConnection () == false, вы можете включить Wi-Fi, используя это в своем манифесте

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.UPDATE_DEVICE_STATS"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>

и это в вашем коде

WifiManager wifiManager;
wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
if(wifiManager.isWifiEnabled()){
   wifiManager.setWifiEnabled(false);
}else{
   wifiManager.setWifiEnabled(true);
}

Я надеюсь, что это поможет вам, хотя это не точный ответ на ваш вопрос.

0 голосов
/ 12 мая 2011

Используйте Log.d для записи сообщений в Logcat, когда происходит событие жизненного цикла Activity, например onPause, onStop, onDestroy, onCreate, onStart и onResume,Также очень полезно создать BroadcastReceiver для регистрации событий трансляции.

...