Tôi có mã sau đây để kiểm tra kết nối internet wifi/EDGE/GPRS/3G trên ứng dụng của tôi.Kiểm tra kết nối internet trên android
mã là
public static boolean checkConn(Context ctx) {
ConnectivityManager conMgr = (ConnectivityManager) ctx
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (conMgr.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED
|| conMgr.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTING) {
return true;
} else if (conMgr.getNetworkInfo(0).getState()==NetworkInfo.State.DISCONNECTED
|| conMgr.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED){
return false;
}
return false;
}
và tôi gọi đó là như dưới đây:
if (CheckInternet.checkConn(introPage.this) == true) {
Intent toMainPage = new Intent(introPage.this, mainPage.class);
System.gc();
startActivity(toMainPage);
} else if (CheckInternet.checkConn(getApplicationContext()) == false) {
Toast.makeText(getApplicationContext(),
"Sorry, No internet connectivity found", Toast.LENGTH_SHORT)
.show();
}
Nhưng tôi đang gặp một vấn đề, đó là nếu tôi kết nối với wifi, và tôi mở ứng dụng, nó hoạt động tốt, nhưng nếu tôi đóng ứng dụng và tắt wifi và mở lại ứng dụng, nó không thông qua lỗi "không có kết nối", tôi cần phải tắt thiết bị của tôi và sau đó bật nó lên, và trường hợp tương tự là nếu wifi tắt, và tôi mở ứng dụng, nó sẽ ném lỗi "không có kết nối", và nếu tôi bật nó lên, nó vẫn ném s cùng một lỗi của "không có kết nối", cho đến khi trừ khi tôi tắt và trên thiết bị.
đóng ứng dụng bằng cách nhấn nhà hoặc phím trở lại .. Coz nếu u đóng nó lại bằng cách nhấn HME sau đó ứng dụng sẽ ở chế độ nền và onCreate sẽ không bị sa thải – DeRagan
@Rahul, nhưng tại sao thậm chí bật wifi, nó vẫn không đưa ra vấn đề kết nối? – kaibuki
Tôi không chắc chắn là nơi bạn đang gọi dòng mã này ... Nếu bạn chỉ đang kiểm tra tình trạng này trong các hoạt động oncreate nó sẽ được gọi chỉ một lần ... – DeRagan