2012-03-06 74 views
0

當互聯網連接出現故障時,我的應用將會關閉。 我已經通過這種方法檢查了閃屏中互聯網連接的狀態,並且它工作正常。事情是,當我的應用程序運行平穩,如果Internet連接失敗,它會崩潰整個應用程序(強制關閉)。如何克服此問題一個當互聯網連接出現故障時,我的應用即將關閉-Android

公共布爾isNetworkAvailable()

{ 
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo networkInfo = cm.getActiveNetworkInfo(); 

    if (networkInfo != null && networkInfo.isConnected()) 
    { 
     return true; 
    } 
    return false; 
} 

1活性: VEC = WSSender.getname(字母, 「0」, 「100」,字典);

Webservice的活動:

public static Vector getname(String str,String str1, String str2, String str3) throws IOException, Exception 
    { 

      SoapObject request = new SoapObject(WSConstants.NAMESPACE, WSConstants.METHOD_NAME); 
      request.addProperty("letter",str); 
      request.addProperty("start", str1); 
      request.addProperty("end", str2); 
      request.addProperty("tableName",str3); 
      SoapObject resultObject = send(request,WSConstants.SOAP_ACTION); 
      //String prelist = resultObject.toString(); 
      Vector preList = WSResponseParser.parseDetailforhn(resultObject); 
      return preList; 
    } 
+1

上傳堆棧跟蹤。 – 2012-03-06 05:29:07

+1

失去連接性不會殺死你的應用程序,除非代碼正在做某件事,它不能正確處理連接丟失。發佈你的logcat來顯示拋出的異常和代碼發生的地方。 – Squonk 2012-03-06 05:29:13

+0

在你的應用程序中,如果你在調用完成之前同時調用一個http服務,如果網絡連接失敗,可能會發生這種情況,你可以首先檢查網絡連接,然後放置請求,並且執行異常處理程序來處理例外正常 – Triode 2012-03-06 05:30:06

回答

0

試試這個:

hello.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View paramView) { 
     net = isOnline(); 
     Toast.makeText(SampleActivity.this, "Hello", Toast.LENGTH_LONG).show(); 
    } 
}); 

private boolean isOnline() { 
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo netInfo = cm.getActiveNetworkInfo(); 
    if (netInfo != null && netInfo.isConnected()) { 
     return true; 
    } else { 
     return false; 
    } 
} 

添加權限在清單:

<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
+0

Nitesh,pankaj:我做了同樣的事情,而不是烤麪包我用警報,如果WiFi沒有連接,它工作正常,並給我警覺,但如果有互聯網連接和我的應用程序運行gud,有人關掉wifi它得到強制關閉ehile從webservice獲取數據 – 2012-03-06 06:00:41

0
You have to perform below check not only in the splash screen but all the places in the appp where internet related tasks are done i.e date upload or download 

//decleration 
boolean net; 

//onCreate 
net = isOnline(); 
if (net == true) 
{ 
//perform internet related tasks in the app 
} 

//function 
public boolean isOnline() { 
     ConnectivityManager cm = (ConnectivityManager) this 
       .getSystemService(Context.CONNECTIVITY_SERVICE); 

     NetworkInfo activeNetworkInfo = cm.getActiveNetworkInfo(); 
     return activeNetworkInfo != null; 

     // return cm.getActiveNetworkInfo().isConnected(); 

    } 
+0

我自己使用webservice,它從互聯網獲取數據,我的webservice方法在另一個class.is有可能檢查我何時調用另一個活動的方法。 – 2012-03-06 06:08:21

+0

在您調用該方法的地方執行上面我建議的檢查。 – 2012-03-06 09:06:38

相關問題