等待String返回值

时间:2013-03-27 17:07:03

标签: android string android-asynctask

我正在尝试使用HttpManager从网址

中检索字符串
public String request(Context context, String url){
        page_requested = "empty";
        HttpQuery query = new HttpQuery(context, mHttpClient);
        query.execute(url);
        return page_requested;
    }

并在MainActivity中使用它

public void onClick(View v) {
        Toast.makeText(MainActivity.this, HttpManager.getInstance().request(MainActivity.this, "http://myurl"), Toast.LENGTH_SHORT).show();
    }

但是public String request不等待执行查询并返回“空”但是如果我等待10秒来显示吐司,它会返回正确的值。

显示预期值的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

使用AsyncTask显示文本。我认为这将是一种有效的方式..您可以在加载操作时显示您的进度条。

public class DisplayString extends AsyncTask<Void, Void, Void>
{  
@Override
protected void onPreExecute()
{  
    super.onPreExecute();
    dialog.setMessage("Please wait...");
    dialog.setCancelable(false);
    dialog.show();

} 
@Override 
protected void onProgressUpdate(Void... values) {
    super.onProgressUpdate(values);
    // Things to be done while execution of long running operation is in progress. For example updating ProgessDialog
 }

@Override 
protected void onPostExecute(Void result)

{ 
      //Post Execute
       dialog.cancel();
     //Display your string here
}
@Override
protected Void doInBackground(Void... params) {

  // Your operation..Dont Edit Any Views here

    return null;
}

}

希望有所帮助