handle类的使用问题:怎样在外部类中更新View

fyhahaha 发布于 2013/05/22 21:20
阅读 163
收藏 0

如图

我要在类a中接受设备发送过来的信息

并把这些信息更新到ui线程中

我该怎么处理?

在a类中直接调用ui线程里的数据 

logcat抛出Only the original thread that created a view hierarchy can touch its views的error

貌似用handle类可以解决这个问题

但是具体应该怎么处理啊?

有没有大神能给我说一下

小弟菜鸟 ~ 

加载中
0
fneg
fneg
在Acitivity里面new一个Handler,这个Handle要重写callback方法,用来处理界面更新逻辑,然后将这个Handle传到类A里面,当类A要更新界面的时候,只需要通过传过来的这个handler发送数据。
0
平安北京
你google一下吧
fyhahaha
fyhahaha
= =lll
0
我是一段代码
我是一段代码
handler发个消息给UI线程,在UI线程更新。一googel能出来一大把。
0
竹蜻蜓O_0纸飞机
竹蜻蜓O_0纸飞机
可以写个类继承AsyncTask 将要处理的信息写在这个类中 然后ui线程里实例化这个类
fyhahaha
fyhahaha
不太懂你的意思 不过觉得好像挺好的样子 能说具体点吗
0
竹蜻蜓O_0纸飞机
竹蜻蜓O_0纸飞机
private final class ImageService extends AsyncTask<String, Void, byte[]> {

        @Override
        protected byte[] doInBackground(String... params) {
            URL url;
            try {
                url = new URL(params[0]);
                HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                conn.setConnectTimeout(5000);
                conn.setDoInput(true);
                conn.setRequestMethod("GET");
                if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
                    InputStream in = conn.getInputStream();
                    return StreamTools.read(in);
                }
            } catch (Exception e) {
                Log.e("", e.toString());
            }
            return null;
        }

        @Override
        protected void onPostExecute(byte[] result) {
            Bitmap bitmap = BitmapFactory.decodeByteArray(result, 0, result.length);
            imageView.setImageBitmap(bitmap);
        }

    }
这是我之前写的一个小例子的代码
在UI线程里直接实例化 其中path是要传递的参数
                ImageService imageService = new ImageService();
                imageService.execute(path);
希望可以帮到你
fyhahaha
fyhahaha
谢谢!感激不尽!
返回顶部
顶部