加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

js中操作android的UI了导致java.lang.IllegalStateException:CallingViewmethodsonanotherthre

(2023-09-23 20:08:46)
分类: androidios
转:https://www.cnblogs.com/cherrylv/p/6424199.html

我们活动中要集成umeng分享,分享到微信,分享到朋友圈都没有问题(更神奇的是做的时候还是ok的,提交给测试的时候就变卦了,日了狗了)。

涉及到一个操作UI的问题,那我们肯定要将js调用我们的代码放在UI线程中啊

runOnUiThread(new Runnable() {
    @Override 
    public void run() { 
        // Code for WebView goes here 
    } 
}); 

这个自然没问题,也就是要把我们注解的方法的内容放在UI线程中跑,但是你的 类 你的 接口 他不是Activity啊 没有runOnUiThread方法啊 。

急中生智,让我们的类 继承 Activity 

public class FreeFlowInterface extends Activity

ok,现在就可以了,然后在这么一来

@JavascriptInterface
    public void shareToFriend(){
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                Bitmap bitmap = drawableToBitmap(R.drawable.sharepic);
                mShareController = UmengShareUtils.share(activity,mShareController,shareTitle,shareContent,targetUrl,bitmap);
            }
        });

    }

坑真的不少,且行且小心。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有