Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10452
  • 博文数量: 8
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 86
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-11 13:55
文章分类

全部博文(8)

文章存档

2015年(1)

2014年(7)

我的朋友
最近访客

分类: Android平台

2015-01-13 10:54:31

  最近遇到一个问题,使用webview实现一些功能,其中涉及到js通知native。
webview.addJavascriptInterface(this, "BUY"),在需要被js调用的方法上添加@JavascriptInterface 注释(annotation)。
然后在被调用方法中直接刷新界面的内容,这时候出现了奇怪的现象就是被修改的view突然消失了。
多次尝试后发现消失的概率很大,之前从没有遇到这种现象,在网络中也没有搜索到相关的信息。

重新查看代码,没有发现问题,突然想到是不是由于不同线程导致的问题,
于是打印出线程信息,发现问题原因:主线程的id是1,但js调用的方法中打印出的线程id每次都不相同,它们不是运行在同一线程中的。

至此找出问题的原因,js调用java中的方法是运行在子线程中的,如果要更新界面必须在主线程中进行。
修改之后就可以了。
阅读(647) | 评论(0) | 转发(0) |
0

上一篇:AsyncTask

下一篇:没有了

给主人留下些什么吧!~~