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

罗杰·特拉维斯(Roger Travis):

我只是在学习AsyncTask,并希望将其用作单独的类,而不是子类。

例如,

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


}

和main(ui)线程:

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

谢谢!

Xi 张熹 :

使用界面。就像是:

interface CallBackListener{
  public void callback();
}

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

inetloader il = new inetloader();
li.setListener(this);
il.execute("http://www.google.com");

在inetloader中,添加:

   CallBackListener mListener;

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

然后在postExecute()中,执行以下操作:

   mListener.callback();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我可以将 setTimeout() 放在动态类中吗?

我可以将表达式放在单独的模块中以更新表格吗?

我可以将其放在单独的课程中吗?

我可以将CRTP与多个派生类一起使用,并进行多态使用吗?

是否可以在Rust中收到指向C函数的指针并进行回调?

在Plotly或Dash中可以进行JavaScript回调吗?

从AsyncTask类回调

我可以将类基础组件放在函数基础组件中以使用 React 钩子吗?

我可以将webpack源映射和源代码文件放在单独的文件夹中吗?

我可以在 on_subscribe 回调中订阅吗?

我可以在回调中动态创建测试规范吗?

我可以使用BroadcastReceiver中的回调方法吗?

我可以将脚本的参数与变量数组进行比较并进行处理吗?

可以将@ManagedBean和@XxxScope放在基类中吗?

尝试将AsyncTask类放在util包/类中以进行I / O操作

将嵌套类放在单独的文件中

我可以将整个HTML文档放在模板中吗?

我可以将MapActivity放在Scrollview中吗?

我可以将分析脚本放在 javascript 文件中吗

Android:您可以在DoInBackground中访问AsyncTask类成员吗?

Kibana:我可以将“时间”存储为变量并进行连续搜索吗?

将一个主题的数据放入回调函数中的动态数组中并进行一些计算

我可以将Xdebug存储在单独的docker容器中吗?

我应该将 /var 放在数据库服务器的单独分区中吗?

我可以将杂项“ Inline”放在正文中,而不是放在规范中吗?

我应该将AsyncTask类放在哪里?

如何将 ParseQuery 放在单独的类中并在 android 的每个活动中调用此方法?

我想消除我在程序中绘制的桌子的重复外观。有什么办法可以将其放在单独的函数中吗?

我可以将异步函数作为回调传递给异步函数吗?