2017-01-22 4 views
0

私は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(); 
      } 
     } 
    } 
} 

は、今私はconnectionerrorと呼ばれる他の方法でisReachable条件を使用するコードの下で細かい作業AsyncTaskメソッドを使用します。どちらも同じ活動です。

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(); 
} 

の下にあなたが

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

以下のようなconnectionerror方法で一つの条件を見ることができるようconnectionerrorは、ネットワークチェックの代わりに、この状態で、私はどのように行うことができます.... AsyncTaskからisReachableを使いたいですそれ ?

+0

'AsyncServerOnlineCheck'ではなく、アクティビティのクラス変数として' isReachable'を変更します。 –

答えて

0

私はそれを修正するために雇用フリーランサー経由で解決しました。彼は警告ダイアログで以下のようにした。

new AsyncServerOnlineCheck().execute(); 

ありがとう!

関連する問題