N
Nebukad
Neues Mitglied
- 2
Moin,
ich habe eine App, welche periodisch Daten aus dem Netzwerk lädt. Dies geschieht über einen Thread der sich mittels mHandler.postDelayed immer wieder selber aufruft.
Am Anfang des Threads wird mit wifi.isWifiEnabled() geprüft ob das Wlan aktiv ist, ist dies nicht der Fall wird es mittels wifi.setWifiEnabled(true) aktiviert.
Dies funktioniert auch, wenn das Wlan aus ist und ich die App starte.
Schalte ich allerdings im laufenden Betrieb das Wlan aus, dann bleibt die App oder der Thread hängen (stürzt nicht ab, macht einfach nichts).
Logcat sagt dann:
ich habe eine App, welche periodisch Daten aus dem Netzwerk lädt. Dies geschieht über einen Thread der sich mittels mHandler.postDelayed immer wieder selber aufruft.
Am Anfang des Threads wird mit wifi.isWifiEnabled() geprüft ob das Wlan aktiv ist, ist dies nicht der Fall wird es mittels wifi.setWifiEnabled(true) aktiviert.
Dies funktioniert auch, wenn das Wlan aus ist und ich die App starte.
Schalte ich allerdings im laufenden Betrieb das Wlan aus, dann bleibt die App oder der Thread hängen (stürzt nicht ab, macht einfach nichts).
Logcat sagt dann:
Woran könnte das liegen?WifiStateTracker( 844): Disabling interface
Tethering( 844): attempting to remove unknown iface (wlan0), ignoring
SocketListener( 771): sendMsg::600::Iface removed wlan0
ActivityManager( 844): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=de.project.Zeiterfassung/.ZeiterfassungActivity bnds=[402,59][476,138] } from pid 940
dalvikvm( 1397): GC_EXPLICIT freed 5K, 69% free 492K/1539K, external 683K/1017K, paused 7ms
dalvikvm( 1413): GC_EXPLICIT freed 8K, 68% free 549K/1667K, external 683K/1017K, paused 7ms
dalvikvm( 1244): GC_EXPLICIT freed 11K, 45% free 1245K/2243K, external 683K/1017K, paused 15ms
dalvikvm( 1062): GC_EXPLICIT freed 44K, 67% free 763K/2307K, external 683K/1017K, paused 12ms
dalvikvm( 1380): GC_EXPLICIT freed 11K, 38% free 1687K/2691K, external 683K/1017K, paused 22ms
dalvikvm( 1147): GC_EXPLICIT freed 13K, 68% free 691K/2115K, external 683K/1017K, paused 10ms
dalvikvm( 1083): GC_EXPLICIT freed 35K, 71% free 745K/2563K, external 683K/1017K, paused 15ms
dalvikvm( 1014): GC_EXPLICIT freed 188K, 83% free 766K/4419K, external 683K/1017K, paused 16ms
dalvikvm( 1199): GC_EXPLICIT freed 155K, 48% free 2343K/4483K, external 683K/1017K, paused 44ms
dalvikvm( 997): GC_EXPLICIT freed 109K, 50% free 940K/1859K, external 1078K/1558K, paused 14ms
dalvikvm( 940): GC_EXPLICIT freed 31K, 56% free 1043K/2371K, external 2357K/2938K, paused 17ms
dalvikvm( 940): GC_EXPLICIT freed 1K, 57% free 1043K/2371K, external 2353K/2938K, paused 17ms
dalvikvm( 844): GC_CONCURRENT freed 1274K, 39% free 3506K/5699K, external 2526K/3155K, paused 5ms+8ms
Code:
wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
networkInfo = cm.getActiveNetworkInfo();
//Integer i = 0;
if (wifi.isWifiEnabled() == true) {
System.out.println("Wifi enabled");
System.out.println(wifi.getWifiState());
} else {
wifi.setWifiEnabled(true);
System.out.println("enabling Wifi, state "
+ wifi.getWifiState());
while (wifi.getWifiState() != 3) {
try {
System.out.println("enabling Wifi, state "
+ wifi.getWifiState());
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}