Connessione Internet in Android
-
27-09-2019 - |
Domanda
Ho un lavoro su di applicazioni che utilizzano Internet.
- Esso contiene analisi XML da URL. di
- Mostra finestra di avanzamento Durante l'analisi tempo.
- finestra di arresto, quando l'analisi viene eseguita.
- Imposta testo (dati) nel ListView.
Il mio problema è che, quando dispositivo è connesso a Internet che la mia Apps funziona bene, ma quando il dispositivo non è collegato a Internet "finestra di dialogo Progress" è in corsa per un tempo infinito.
Voglio smettere di dialogo se il dispositivo non è connesso a internet o wifi. come fare questo?
Qualche idea?
Scusate ragazzi .... ho cambiare idea voglio controllare connessione a Internet quando clicco sul pulsante. quello che ho provato finora è ..
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.homelayout);
mclip = (ImageButton) findViewById(R.id.clip);
mclip.setClickable(true);
mclip.setFocusable(true);
mclip.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnectedOrConnecting()) {
//if it is connected to internet than start Another Activity.
startActivity(new Intent(ListViewExample.this, ClipOfDay.class));
} else if (netInfo == null) {
AlertDialog alertDialog = new AlertDialog.Builder(ListViewExample.this).create();
alertDialog.setTitle("Connection Problem");
alertDialog.setMessage("You are not connected to Internet");
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
return;
}
});
alertDialog.show();
}
}
});
}
Ma questo non è dispositivo working.if non è collegato a Internet che voglio mostrare AlertDialog. altrimenti avrà inizio attività. Qualcuno può dirmi cosa fare?
Grazie.
Soluzione
Controllare la connessione di rete
Un semplice codice per la verifica di collegamento
ConnectivityManager cMgr = (ConnectivityManager) con.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cMgr.getActiveNetworkInfo();
String status = netInfo.getState().toString();
if (status.equals("CONNECTED")) {
//DO you work
} else {
Log.e("error", "No connection available ");
}
Altri suggerimenti
Usare questi due metodi per controllare la connettività:
Context.getSystemService(Context.CONNECTIVITY_SERVICE).getNetworkInfo(ConnectivityManager.TYPE_MOBILE)
Context.getSystemService(Context.CONNECTIVITY_SERVICE).getNetworkInfo(ConnectivityManager.TYPE_WIFI)
quindi analizzare i risultati restituiti per sapere se la connessione è disponibile. Se è disponibile, allora solo fare le cose e mettere la finestra di dialogo.
In alternativa, si potrebbe anche pop nella finestra di dialogo, e prima di fare qualsiasi azione di rete, controllo per la connettività con questi metodi, e se la connessione non è disponibile, nascondere / annullare la finestra di dialogo e visualizzare un messaggio di errore. altrimenti, andare per l'azione di rete. e sì, hanno sempre un blocco try-catch.
- In primo luogo verificare se è collegato a internet o wifi, quindi eseguire il codice
- Usa try, catch, nel caso in cui qualche eccezione si verifica a causa di errore di connessione, dialogo rimuovere in blocco catch.
Questo può essere un modo per fare questo ..............
Speranza che aiuta .......