2017-01-22 3 views
0

Я проверяю сервер недоступен или не с классом AsyncTask и его прекрасно работать с кодом нижеКак использовать метод AsyncTask вне

class AsyncServerOnlineCheck extends AsyncTask { 
    boolean isReachable; 

    @Override 
    protected Object doInBackground(Object[] objects) { 

     isReachable = NetworkCheck.isReachable(SplashsActivity.this); 
     return null; 
    } 

    @Override 
    protected void onPostExecute(Object o) { 
     super.onPostExecute(o); 
     if (isReachable) { 
      new DownloadLatestData().execute(); 
      Toast.makeText(SplashsActivity.this, "Server is online", Toast.LENGTH_SHORT).show(); 
     } else { 
      if (database.isDataBaseCreated()) { 
       Toast.makeText(SplashsActivity.this, "Server is offline", Toast.LENGTH_SHORT).show(); 
       Intent i = new Intent(SplashsActivity.this, MainActivity.class); 
       startActivity(i); 
       overridePendingTransition(R.anim.fade_in, R.anim.fade_out); 
       finish(); 
      } else { 
       connectionerror(); 
      } 
     } 
    } 
} 

Теперь я хочу использовать isReachable условие в другом методе, называемом ConnectionError. Оба они одинаковы. ConnectionError как ниже

public void connectionerror() { 
    AlertDialog.Builder alertDialog = new AlertDialog.Builder(SplashsActivity.this); 

    alertDialog.setTitle("Error!"); 

    alertDialog.setMessage("Connection Lost ! Try Again"); 

    alertDialog.setPositiveButton("Retry", 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int which) { 
        dialog.dismiss(); 
        if (downloadLatestDataStatus != null) { 
         downloadLatestDataStatus.clear(); 
        } 
        if (NetworkCheck.isInternetAvailable(SplashsActivity.this)) { 
         new DownloadLatestData().execute(); 
        } else { 
         connectionerror(); 
        } 
       } 
      }); 

    alertDialog.show(); 
} 

Вы можете увидеть одно условие в методе ConnectionError, как показано ниже

if (NetworkCheck.isInternetAvailable(SplashsActivity.this)) { 
         new DownloadLatestData().execute(); 
        } 

вместо этого условия для проверки сети, я хочу использовать isReachable из AsyncTask .... Как я могу сделать Это ?

+0

Изменить 'isReachable' как переменную класса для Activity вместо' AsyncServerOnlineCheck' –

ответ

0

У меня есть решение нанять фрилансера, чтобы исправить это. Он сделал так, как показано ниже в предупреждающем диалоге

new AsyncServerOnlineCheck().execute(); 

Спасибо всем друзьям !!

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