2013-03-27 4 views
0

Я пытаюсь использовать HttpManager для извлечения строки из URLДождитесь строки, чтобы возвращать значение

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 секунд для отображения тоста, он вернет правильное значение.

Каков наилучший способ отображения ожидаемого значения?

ответ

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

}

Надеется, что это помогает

Смежные вопросы