2012-09-14 63 views
-1

我有一個班,它不擴展活動,如果沒有互聯網連接可用會顯示錯誤如果沒有網絡可用,如何停止應用程序爆炸?

如果互聯網可用,它可以正常工作,但是當互聯網不可用或服務器繁忙時,應用程序部隊關閉。我如何防止這種情況?如何在主要活動類中打印catch catch消息?

如何阻止應用程序崩潰,如果沒有網絡可用?

public class AgAppHelperMethods { 


    private static final String LOG_TAG = null; 
    public static String[][] AgAppXMLParser(String parUrl) { 



    String _node,_element; 
    String[][] xmlRespone = null; 
    try { 

      String url = "www.xxxx.com"; 
      URL finalUrl = new URL(url);  


      DocumentBuilderFactory dbf = 
     DocumentBuilderFactory.newInstance(); 
      DocumentBuilder db = dbf.newDocumentBuilder(); 
      Document doc = db.parse(new 
     InputSource(finalUrl.openStream())); 
      doc.getDocumentElement().normalize(); 

      NodeList list=doc.getElementsByTagName("*"); 
      _node=new String(); 
      _element = new String(); 
      xmlRespone = new String[list.getLength()][2]; 


      for (int i=0;i<list.getLength();i++) 
       { 
        Node value=list.item(i).  getChildNodes().item(0); 
        _node=list.item(i).getNodeName(); 
        _element=value.getNodeValue(); 
        xmlRespone[i][0] = _node; 
        xmlRespone[i][1] = _element; 

       }//end for 

     }//end try 









catch (Exception e) 
{ 
    Log.e(LOG_TAG, "Connection Error NET NOT WORKING", e); 
    } 





    return xmlRespone;   

} 



     public class LoginScreen extends Activity implements Serializable { 


public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 

    setContentView(R.layout.agapplogin); 
      btnLogin = (Button) findViewById(R.id.btnLogin); 

      btnLogin.setOnClickListener(new OnClickListener() { 

          public void 
      onClick(View  view) { 
      postLoginData(); 

      public void postLoginData() 

{ 
      xmlRespone = AgAppHelperMethods.AgAppXMLParser("www.xxx.com); 


     Intent i = new Intent(this.getApplicationContext(), 
     Activity2.class); 
     Bundle bundle = new Bundle(); 
     bundle.putSerializable("xmlResponee", xmlRespone.toString()); 
     i.putExtras(bundle); 
     //i.putExtra("OBJECT", xmlRespone) 

回答

0

可以檢查網絡是否可用使用這個片段中,

ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo activeNetworkInfo = connectivityManager 
       .getActiveNetworkInfo(); 

     if (activeNetworkInfo == null) { 

      Toast.makeText(Photos_Activity.this, 
        "Network Not Connected...Please Try Again", 
        Toast.LENGTH_LONG).show(); 

     } else { 
      if (activeNetworkInfo.isConnected()) { 

       //Here you can perform your task when internet is connected 

      } else if (activeNetworkInfo.isConnectedOrConnecting()) { 

       Toast.makeText(Photos_Activity.this, 
         "Network is connecting Now please patient", 
         Toast.LENGTH_LONG).show(); 
      } 

     } 

不要忘了在清單

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

如果你想退出你的應用程序,當互聯網沒有連接時,請使用System.exit(0);在if塊內。 – Aerrow

+0

非o我檢查它imean如果我打電話http url,如果沒有服務器avaiilable或服務器繁忙如何處理這個? –

+0

你不會得到假設,如果我輸入無效的用戶名密碼訪問服務器URL是「www.123.com」+「username.text」+「password.text」是這個輸入是錯誤的或服務器繁忙如何處理這? –

0

添加此權限你先檢查一下網絡可用性,然後去進一步的過程

此功能可能會幫助你完全和添加需要許可

public static boolean isNetworkAvailable(Context context) { 
     boolean outcome = false; 

     if (context != null) { 
      ConnectivityManager cm = (ConnectivityManager) context 
        .getSystemService(Context.CONNECTIVITY_SERVICE); 

      NetworkInfo[] networkInfos = cm.getAllNetworkInfo(); 
      for (NetworkInfo tempNetworkInfo : networkInfos) { 

       if (tempNetworkInfo.isConnected()) { 
        outcome = true; 
        break; 
       } 
      } 
     } 

     return outcome; 
    } 
+0

我做了這個imean如果沒有HTTP服務器可用或服務器繁忙假設我打電話給這個URL「www.123.com」如果服務器不是avaibale或如果沒有響應我如何處理? –

+0

那麼你可能會首先檢查你的回覆 –

+0

假設我打電話url和url不存在然後qpplication爆炸我怎麼阻止這? –