js中操作android的UI了导致java.lang.IllegalStateException:CallingViewmethodsonanotherthre
| 分类: 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); } }); }
坑真的不少,且行且小心。

加载中…