Java 调用onPostExecute太晚了

Java 调用onPostExecute太晚了,java,android,android-asynctask,httprequest,ui-thread,Java,Android,Android Asynctask,Httprequest,Ui Thread,首先,我将用文字简要描述过程/问题。之后,我将附加所有代码 我以调试模式启动android应用程序 调用主活动 它通过“意图”调用Activity2 然后(在onCreate中)启动一个异步活动,以便从Web服务器获取信息。我使用这个命令“newkontakt(info1,info2,information.execute();” 我在“Kontakt”中的onPostExecute方法上放置了一个断点,以查看发生了什么。但是这还不止于此。于是我想,“好吧,doInBackground方法因为某

首先,我将用文字简要描述过程/问题。之后,我将附加所有代码

  • 我以调试模式启动android应用程序
  • 调用主活动
  • 它通过“意图”调用Activity2
  • 然后(在onCreate中)启动一个异步活动,以便从Web服务器获取信息。我使用这个命令“newkontakt(info1,info2,information.execute();”

  • 我在“Kontakt”中的onPostExecute方法上放置了一个断点,以查看发生了什么。但是这还不止于此。于是我想,“好吧,doInBackground方法因为某种原因没有被调用”

  • 当我继续运行代码时,出乎意料的是,onPostExecute被调用(在onClick末尾的某个地方)并在断点处停止,这正是我想要的方式,但为时已晚,因为我希望在onCreate方法中已经有了输出,我在该方法中调用了“new Kontakt(info1,info2,information).execute();”

  • 那么,为什么它调用onPostExecute太晚了?我该怎么做才能使流程在Activity2中的onCreate行“new Kontakt(info1,info2,information).execute();”中正确地调用它呢

  • 代码如下

    MainActivity.java

    package com.example.myapplication;
    导入android.content.Context;
    导入android.content.Intent;
    导入android.content.SharedReferences;
    导入android.graphics.Color;
    导入android.graphics.PorterDuff;
    导入android.graphics.drawable.drawable;
    导入android.preference.PreferenceManager;
    导入android.support.v7.app.ActionBarActivity;
    导入android.os.Bundle;
    导入android.util.Log;
    导入android.view.Menu;
    导入android.view.MenuItem;
    导入android.view.view;
    导入android.widget.Button;
    导入android.widget.TextView;
    公共类MainActivity扩展ActionBarActivity实现View.OnClickListener{
    按钮1;
    @凌驾
    创建时受保护的void(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    button1=(按钮)findViewById(R.id.button1);
    button1.setOnClickListener(此);
    }
    @凌驾
    公共void onClick(视图){
    开关(view.getId()){
    案例R.id.button1:
    意向意向=新意向(此,Activity2.class);
    星触觉(意向);
    打破
    }
    }
    }
    
    Activity2.java

    package com.example.myapplication;
    导入android.app.AlertDialog;
    导入android.content.Context;
    导入android.content.DialogInterface;
    导入android.content.SharedReferences;
    导入android.net.ConnectivityManager;
    导入android.net.NetworkInfo;
    导入android.preference.PreferenceManager;
    导入android.support.v7.app.ActionBarActivity;
    导入android.os.Bundle;
    导入android.text.InputType;
    导入android.text.TextUtils;
    导入android.util.Log;
    导入android.view.Menu;
    导入android.view.MenuItem;
    导入android.view.view;
    导入android.view.WindowManager;
    导入android.view.inputmethod.InputMethodManager;
    导入android.widget.Button;
    导入android.widget.EditText;
    导入org.apache.http.NameValuePair;
    导入org.apache.http.client.HttpClient;
    导入org.apache.http.client.entity.UrlEncodedFormEntity;
    导入org.apache.http.client.methods.HttpPost;
    导入org.apache.http.impl.client.DefaultHttpClient;
    导入org.apache.http.message.BasicNameValuePair;
    导入org.apache.http.params.BasicHttpParams;
    导入org.apache.http.params.HttpConnectionParams;
    导入org.apache.http.params.HttpParams;
    导入java.io.IOException;
    导入java.net.MalformedURLException;
    导入java.util.ArrayList;
    公共类Activity2扩展了ActionBarActivity实现了View.OnClickListener{
    按钮;
    语境信息;
    @凌驾
    创建时受保护的void(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity2);
    信息=这个;
    String info1=“是”;
    String info2=“耶”;
    新的Kontakt(info1,info2,information).execute();
    按钮=(按钮)findViewById(R.id.button);
    setOnClickListener(此);
    }
    @凌驾
    公共void onClick(视图){
    if(view.getId()==R.id.button){
    }
    }
    
    Kontakt.java

    package com.example.myapplication;
    导入android.content.Context;
    导入android.content.DialogInterface;
    导入android.content.SharedReferences;
    导入android.os.AsyncTask;
    导入android.util.Log;
    导入org.apache.http.NameValuePair;
    导入org.apache.http.client.HttpClient;
    导入org.apache.http.client.entity.UrlEncodedFormEntity;
    导入org.apache.http.client.methods.HttpPost;
    导入org.apache.http.impl.client.DefaultHttpClient;
    导入org.apache.http.message.BasicNameValuePair;
    导入org.apache.http.params.BasicHttpParams;
    导入org.apache.http.params.HttpConnectionParams;
    导入org.apache.http.params.HttpParams;
    导入org.json.JSONObject;
    导入java.util.ArrayList;
    公共类Kontakt扩展异步任务{
    公共静态最终int连接\u超时=1000*15;
    公共静态最终字符串服务器\u地址=”http://test.site.net/";
    字符串信息1;
    字符串信息2;
    私人最终上下文信息;
    公共Kontakt(字符串info1、字符串info2、上下文){
    this.info1=info1;
    this.Info2=Info2;
    信息=上下文;
    }
    @凌驾
    受保护的整数doInBackground(Void…params){
    ArrayList dataToSend=新的ArrayList();
    dat