2012-02-05 3 views
0

Я использую этот класс, чтобы загрузить текстовый файлAsyncTask из класса активности

class RetreiveFeedTask extends AsyncTask<String, Void,String> { 

    @Override 
    protected ArrayList<Item> doInBackground(String... params) { 
    try{ 
     URL url = new URL("myurl"); 
     InputStream is = url.openStream(); 
     BufferedReader in = new BufferedReader(new InputStreamReader(is)); 
     String str; 
     while ((str = in.readLine()) != null){ 
     } 

     in.close(); 
     return str; 
    } 
    catch (MalformedURLException e){} 
    catch (IOException e){} 

    return null; 

} 

protected void onPostExecute(Strin str) { 

} 

это, как я называю этот класс от моей деятельности:

new RetreiveFeedTask().execute(); 

И я хочу знать, если есть способ передать этот результат активности, выполняющей вызов.

ответ

2

Вы можете создать слушатель, который вы передадите в конструкторе вашей AsyncTask. В вашем onPostExecute вы просто вызываете этого слушателя.

Нечто подобное:

public interface OnTaskCompleteListener { 
    void onTaskComplete(String result); 
} 

protected void onPostExecute(String str) { 
    onTaskCompleteListener.onTaskComplete(str); 
} 
Смежные вопросы