Android,我可以将 AsyncTask 放在单独的类中并进行回调吗?

编程入门 行业动态 更新时间:2024-10-23 09:22:47
本文介绍了Android,我可以将 AsyncTask 放在单独的类中并进行回调吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我只是在学习 AsyncTask 并希望将它用作一个单独的类,而不是一个子类.

I'm just learning about AsyncTask and want to use it as a separate class, rather then a subclass.

例如

class inetloader extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... urls) { String response = ""; DefaultHttpClient client = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(urls[0]); try { HttpResponse execute = client.execute(httpGet); InputStream content = execute.getEntity().getContent(); BufferedReader buffer = new BufferedReader( new InputStreamReader(content)); String s = ""; while ((s = buffer.readLine()) != null) { response += s; } } catch (Exception e) { e.printStackTrace(); } return response; } @Override protected void onPostExecute(String result) { Log.e("xx",result); // how do I pass this result back to the thread, that created me? } }

和主(ui)线程:

inetloader il = new inetloader(); il.execute("www.google"); //il.onResult() //{ ///do something... //}

谢谢!

推荐答案

使用接口.类似的东西:

Use a interface. Something like:

interface CallBackListener{ public void callback(); }

然后在您的 UI 线程中执行此操作:

Then do this in your UI thread:

inetloader il = new inetloader(); li.setListener(this); il.execute("www.google");

在inetloader中,添加:

In inetloader, add:

CallBackListener mListener; public void setListener(CallBackListener listener){ mListener = listener; }

然后在 postExecute() 中,执行:

then In postExecute(), do:

mListener.callback();

更多推荐

Android,我可以将 AsyncTask 放在单独的类中并进行回调吗?

本文发布于:2023-08-01 09:19:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1267198.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:放在   回调   类中   Android   AsyncTask

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!