在http post完成后开始活动意图

时间:2016-05-26 10:43:25

标签: android post android-intent

我有一项主要活动。 从这个活动我调用另一个公共类的方法。

在主要活动中我称之为这样的方法:

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

如果被调用的方法完成,有没有办法在intent(主活动之外)中启动?

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
        }

    }
}

2 个答案:

答案 0 :(得分:1)

是,

在asyncTask类中,您可以覆盖 onPostExecute 方法并在那里编写活动开始代码

在doInBackground方法之后执行:)

在帖子内部执行预初始化所有可能的Intent并使用开关处理或if else

样品

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

答案 1 :(得分:0)

使用界面执行此任务,例如。 1 GT;创建界面

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

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

2 - ;比Async Activity使用这个

AsyncTaskListener listener;

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

在AsyncTask OnPost和响应字符串上使用sendResponse方法输入&#34;成功&#34;然后实现第一个活动的界面,并检查响应是否为&#34;成功&#34;而不是通过意图。