今天在添加功能的过程中遇到了一个ImageView及
TextView在收到回调的内容后,通过
handler.sendEmptyMessageDelayed(COMPLETED, 100);在
handleMessage方法里做tv.settext(),
iv.setImageBitmap操作,发现一个问题,如果刚进入页面就回调,就可以正常显示,但是如果进入页面延迟3-5秒再回调就无法显示,打印log都有内容,就是没显示出来。折腾了两个小时,通过以下方式解决,在此做个标记,有遇到同样问题的童鞋么?
上次写了
Android上调用百度人脸识别接口
但是只写到获取JSON字符串,在log当中打印,没有
更新UI界面
这次简单写一下
Android在
子线程当中
更新UI界面(
TextView、ImageView)
这次调用的本地服务器接口,将图片上传到服务器中,返回JSON解析后再展示
通过Message传递消息给
Handler
更新界面
MessgActivity
package ss.demo16;
问题一:子线程能弹Toast吗?
相信很多安卓开发者都坚信一个信念,那就是子线程不能更新UI,不能进行UI操作,写此文之前,我自己也是这么坚信的,直到我注意到一个异常,才引发我对子线程不能更新UI有了新的认识。这个异常是在我在子线程里面不小心弹了一个Toast引发的,该异常相信很多朋友都见过,就是
java.lang.RuntimeException: Can't create handle...
最近遇到一问题,ListView Item加载多个图片,图片是在Adapter的getView方法通过子线程异步进行加载的。
这时候就涉及到子线程刷新主线程中View的问题,一般有两个方式,
1.View.post(Runnable);
2.Activity.runOnUiThread(Runnable);
首次是使用View.post方式来刷新界面,但是一直刷新失败,debug发现图片下...
//在类里声明一个
Handler
Handler mTime
Handler = new
Handler() {
public void
handleMessage(Message msg) {
if (msg.what == 0) {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setConten...
android.view.ViewRootImpl$CalledFromWrongThreadException: Only the
original thread that created a view hierarchy can touch its views
private
TextView txtContent;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {