L
Lainio
Ambitioniertes Mitglied
- 3
Hallo Leute,
ich habe folgende Klasse:
Diese Klasse soll überprüfen ob eine Internetverbindung vorhanden ist und ob ich Zugriff auf das Internet habe.
Diese Klasse soll an verschiedenen Stellen verwendet werden, um Abstürze wegen fehlender Internet-Verbindung, zu vermeiden.
Jedoch weiß ich nicht wie ich diese richtig verwenden kann.
Ein Beispiel:
Das networkAvailability.execute() funktioniert soweit auch nicht weil in der Bedingung von if natürlich boolean sein muss.
Kann mir da einer helfen?
wenn ich nach dem .execute() ein .get() reinsetze dann friert das Interface ein. Sollte also keine Lösung sein.
Ich hoffe ihr könnt mir helfen!!
Vielen Dank!!
lg
lainio
ich habe folgende Klasse:
PHP:
public class NetworkAvailability extends AsyncTask<Context, Boolean, Boolean> {
Context mContext;
/*------------------------Prüfen ob Internet verfügbar----------------------*/
private static boolean isNetworkAvailable() {
ConnectivityManager connectivityManager = (ConnectivityManager) ListViewActivity.getAppContext().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
if (activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting()) {
Log.i("Netzwerkstatus: ", "Netzwerk-Verbindung verfügbar");
return true;
}
return false;
}
public NetworkAvailability(Context mContext) {
this.mContext = mContext;
}
public NetworkAvailability() {
}
@Override
protected Boolean doInBackground(Context... params) {
if (isNetworkAvailable()) {
try {
HttpURLConnection urlc = (HttpURLConnection) (new URL("http://www.google.de").openConnection());
urlc.setRequestProperty("User-Agent", "Test");
urlc.setRequestProperty("Connection", "close");
urlc.setConnectTimeout(1500);
try {
urlc.connect();
} catch (IOException e) {
e.printStackTrace();
}
//i ist 200 bei Internetverbindung
int i = urlc.getResponseCode();
return (i == 200);
} catch (IOException e) {
Log.e("IsInternetAccessible: ", "Konnte Internetverbindung nicht prüfen");
}
} else {
Log.d("IsInternetAccessible:", "Internet nicht verfügbar");
}
return false;
}
}
Diese Klasse soll überprüfen ob eine Internetverbindung vorhanden ist und ob ich Zugriff auf das Internet habe.
Diese Klasse soll an verschiedenen Stellen verwendet werden, um Abstürze wegen fehlender Internet-Verbindung, zu vermeiden.
Jedoch weiß ich nicht wie ich diese richtig verwenden kann.
Ein Beispiel:
PHP:
if (networkAvailability.execute()) {
XMLParser parser = new XMLParser();
String xml = parser.getXMLFromUrl("http://XXXXX/XX.xml");
Document doc = parser.getDomElement(xml);
NodeList nl = doc.getElementsByTagName(KEY_SYSTEM);
for (int i = 0; i < nl.getLength(); i++) {
// Neue HashMap erstellen
HashMap<String, String> map = new HashMap<String, String>();
Element e = (Element) nl.item(i);
// Jedes Kind-Knoten zur HashMap
map.put(KEY_UUID, parser.getValue(e, KEY_UUID));
map.put(KEY_NAME, parser.getValue(e, KEY_NAME));
map.put(KEY_JOBTITLE, parser.getValue(e, KEY_JOBTITLE));
map.put(KEY_JOBINFO, parser.getValue(e, KEY_JOBINFO));
map.put(KEY_IMAGE, parser.getValue(e, KEY_IMAGE));
//Hashmap zur ArrayList hinzufügen
menuItems.add(map);
}
} else {
Log.i("doInBackground:", "Keine Internet-Verbindung");
return null;
}
Das networkAvailability.execute() funktioniert soweit auch nicht weil in der Bedingung von if natürlich boolean sein muss.
Kann mir da einer helfen?
wenn ich nach dem .execute() ein .get() reinsetze dann friert das Interface ein. Sollte also keine Lösung sein.
Ich hoffe ihr könnt mir helfen!!
Vielen Dank!!
lg
lainio