2013-05-02 4 views
0

У меня проблема, когда я использую мое приложение с подключением, все круто, но когда я выключаю соединение, мое приложение падает, я хочу знать, как заставить это приложение работать без подключения к нему сбой после того, как AsyncTask, это он,Crash 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

Не могли бы вы сообщить о StackTrace исключение? – edoardotognoni

+1

Сообщите своим друзьям! Где именно ваше приложение рушится? – caiocpricci2

+0

Что такое статьи в вашем pgm? –

ответ

0

Используете ли вы свои статьи в пост-кадре где-нибудь? Даже если вы проверяете возможность подключения к серверу, есть все возможности, что вы получаете исключение тайм-аута или неизвестное исключение хоста. Так прошу ваш код doinbackground в try catch и в проверке после выполнения перед тем, как приступить к его использованию, проверьте нумерацию статей.

+0

благодарю вас за ответ, но как это сделать, я стараюсь с большим количеством решений, но ничего, и я пишу это на e после многих из них, я использовал, чтобы сделать это при выполнении post, но ничего не произошло: s – Sherlock

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

+0

stil ничего не произошло :(не знаю почему: s – Sherlock

+0

вы добавили разрешение в android manifesta .. он работает когда-то Saad

Смежные вопросы