2013-05-02 79 views
0

我有一个问题,当我用我的应用程序的连接一切都很酷,但是当我关闭连接我的应用程序崩溃,我想知道如何使这个应用程序工作,而不会连接它崩溃的AsyncTask后,这是它,崩溃apllication没有连接到互联网

class FetchRecentPosts extends AsyncTask<Void, Void, Void> { 
     private ProgressDialog progressDialog; 
     @Override 
     protected void onPreExecute() {   
      super.onPreExecute(); 
      progressDialog = ProgressDialog.show(MainActivity.this, "", getString(R.string.loading_message)); 
     } 

     @Override 
     protected Void doInBackground(Void... params) { 
      articles = Services.getRecentPosts(MainActivity.this); 

      return null; 
     } 

     @Override 
     protected void onPostExecute(Void result) { 
      super.onPostExecute(result); 
      progressDialog.dismiss(); 
     } 
    } 

,这是我使用的连接类:

private boolean checkInternetConnection() { 
     ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 

     if (cm.getActiveNetworkInfo() != null 
       && cm.getActiveNetworkInfo().isAvailable() 
       && cm.getActiveNetworkInfo().isConnected()) { 
      return true; 
     } else { 
      Log.i("wa makaynash connexion a sahbé :s", null); 
      return false; 
     } 
    } 

我想知道如何工作了这一切,并感谢

+0

能否请您举报异常堆栈跟踪? – edoardotognoni 2013-05-02 09:34:57

+1

发布您的logcat!你的应用在哪里崩溃? – caiocpricci2 2013-05-02 09:35:06

+0

什么是你的PGM文章? – 2013-05-02 09:36:35

回答

0

你是否在使用你的文章后执行某处?即使你在打到服务器之前检查连贯性,你有可能会收到超时异常或未知的主机异常。所以请在try catch和post执行检查在开始使用前检查文章为空。

+0

谢谢你的答案,但如何做到这一点,我尝试了许多解决方案,但没有,我写这篇文章e在很多人之后,我曾经在post执行过但没有任何事情发生:s – Sherlock 2013-05-02 09:43:41

0

使用这个,尝试一次我面临同样的问题。 。

在OnCreate中

if (Utils.isNetworkAvailable(MainActivity.this)) { 

//新MyTask

()执行(的RSSFeed); //你的代码

} else { 
     showToast("No Network Connection!!!"); 
    } 

} 

这之后OnCreate中。

public void showToast(String msg) { 
    Toast.makeText(MainActivity.this, msg, Toast.LENGTH_LONG).show(); 
} 

,使一类名为utils的和编写代码

public class Utils { 

public static boolean isNetworkAvailable(Activity activity) { 
    ConnectivityManager connectivity = (ConnectivityManager) activity 
      .getSystemService(Context.CONNECTIVITY_SERVICE); 
    if (connectivity == null) { 
     return false; 
    } else { 
     NetworkInfo[] info = connectivity.getAllNetworkInfo(); 
     if (info != null) { 
      for (int i = 0; i < info.length; i++) { 
       if (info[i].getState() == NetworkInfo.State.CONNECTED) { 
        return true; 
       } 
      } 
     } 
    } 
    return false; 
} 
} 
+0

谢谢你saad,我会尝试它是否工作谢谢 – Sherlock 2013-05-02 09:56:50

+0

stil什么都没发生:(不知道为什么:s – Sherlock 2013-05-02 10:06:57

+0

你是否添加了权限在Android的manifesta ..它的作品有时<使用权限的android:name =“android.permission.ACCESS_NETWORK_STATE”/> – Saad 2013-05-02 10:12:29