2016-05-26 11 views
-1

私は主な活動をしています。 このアクティビティから別のパブリッククラスのメソッドを呼び出します。主な活動でhttp投稿が終了した後に活動の意図を開始

私はこのような、このメソッドを呼び出します。

// Background Task 
new Sync.SyncMYSQL().execute(); 

は、呼び出されたメソッドが仕上げの場合(主な活動のうちの)意図で起動する方法はありますか?あなたのasyncTaskクラスで

public class Sync { 

    static class SyncMYSQL extends AsyncTask<String, String, String> { 


     @Override 
     protected String doInBackground(String... params) { 
      // DO SOMETHING 
      return null; 
     } 


     protected void onPostExecute(String result) { 
      // DO SOMETHING 
     } 

    } 
} 
+0

[AsyncTask](https://developer.android.com/reference/android/os/AsyncTask.html)を使用すると、 –

+0

あなたは別のアクティビティでAsyncTaskを使用していますか?他のアクティビティにインテントを渡したいと思っていますか? –

+0

ページが見つかりません... – Stack108

答えて

1

YES、

あなたはonPostExecuteメソッドをオーバーライドして、doInBackgroundメソッド:)あなたのポストの内側

後に実行するとそこ

をあなたの活動開始コードを書くことができます可能なすべてのインテントを事前に初期化し、スイッチで処理するか、それ以外の場合は

サンプル

public class Sync { 

static class SyncMYSQL extends AsyncTask<String, String, String> { 
    int type; 
    public SyncMYSQL(int intentType){ 
     type=intentType; 
     } 

    @Override 
    protected String doInBackground(String... params) { 
     // DO SOMETHING 
     return null; 
    } 


     protected void onPostExecute(String result) { 
      switch(type){ 
      case 0: Intent in=new Intent(context,destinationActivity1); 
        startActivity(in); 
        break; 
      case 1: Intent in=new Intent(context,destinationActivity2); 
        startActivity(in); 
        break; 
      } 
     } 

    } 
} 

呼び出しのように、この作業を行うため、この

new Sync.SyncMYSQL(<integer_value>).execute(); 
+0

はい、途中です。しかし、非同期タスクは他の多くのアクティビティを実行するので、意図は毎回異なるでしょう – Stack108

+0

私はあなたの要件を正しく取得しませんでしたが、これはあなたが探しているものであり、私の答えを編集したものと仮定します。 – Jayanth

0

使用インターフェイスのようなこの非同期タスク。 1>非同期の活動よりも>

public interface AsyncTaskListener { 
public void onHttpResponse(String callResponse); 

    public void onError(String error, int pageId); 
} 

2インターフェイスを作成「成功」を入力し、この後、あなたへのインタフェースを実装し、この

AsyncTaskListener listener; 

    private void sendResponse(String response) { 
     if (listener != null) { 
     listener.onResponse(response); 
     } 
    } 

を使用し、AsyncTask OnPostに、応答文字列にsendResponseメソッドを使用しますインテントを渡すよりも応答が「成功」であるかどうかをチェックします。

関連する問題