我写的程序 跑一会儿就会卡主,是不是多线程的问题?

zx362168897 2013-08-07 05:58:56
首先 开三条线程 在三个不同的webView中 访问三个网站
public void create()
{
new Thread(){
public void run()
{
view1.loadUrl("****");
}
}.run();
new Thread(){
public void run()
{
view2.loadUrl("****");
}
}.run();
new Thread(){
public void run()
{
view3.loadUrl("****");
}
}.run();
}

接下来是重构web的方法 让其跳转时候在同一个webView里面跳转 每次记录 三个webView各自跳转了几次
我在想是不是频繁更新UI的缘故,倒置UI线程阻塞了- -?因为刚从java学andoroid 创建线程习惯就是这样 尝试看了解决方法 但是都说的很难看懂 有没有大神帮忙看下 怎么修改 提醒下
wvView.setWebViewClient(new WebViewClient(){
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
if(view==view1)
{
TextView1.setText(i);
i++;
}
else if (view==view2){
TextView2.setText(j);
j++;
}
else if(view==view3)
{
TextView3.setText(k);
k++;
}
view.loadUrl(url);
return true;
}
});
...全文
136 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
MapzChen 2013-08-08
  • 打赏
  • 举报
回复
asynctask view.post() 。。。。。 方法很多
zx362168897 2013-08-08
  • 打赏
  • 举报
回复
private class MainHandler extends Handler { @Override public void handleMessage(Message msg) { switch (msg.what) { case 1: view1.loadUrl("****"); break; case 2: view2.loadUrl("****"); break; case 3: view3.loadUrl("****"); break; default: break; } } } public void create() { new Thread(){ public void run() { mHandler.sendEmptyMessageDelayed(1, 0); } }.run(); new Thread(){ public void run() { mHandler.sendEmptyMessageDelayed(2, 0); } }.run(); new Thread(){ public void run() { mHandler.sendEmptyMessageDelayed(3, 0); } }.run(); } 这样可以么
zx362168897 2013-08-08
  • 打赏
  • 举报
回复
引用 2 楼 tanwei4199 的回复:
new Thread(){ public void run() { view1.loadUrl("****"); } }.run(); 我擦 你在子线程能操作view?
那是不是都写在主线程里
荒颜 2013-08-08
  • 打赏
  • 举报
回复
引用 3 楼 yuebanmumu 的回复:
[quote=引用 2 楼 tanwei4199 的回复:] new Thread(){ public void run() { view1.loadUrl("****"); } }.run(); 我擦 你在子线程能操作view?
WebView不用线程的吧[/quote] 这个没真正了解过 不过我们是写在主线程的
荒颜 2013-08-08
  • 打赏
  • 举报
回复
引用 5 楼 zx362168897 的回复:
private class MainHandler extends Handler { @Override public void handleMessage(Message msg) { switch (msg.what) { case 1: view1.loadUrl("****"); break; case 2: view2.loadUrl("****"); break; case 3: view3.loadUrl("****"); break; default: break; } } } public void create() { new Thread(){ public void run() { mHandler.sendEmptyMessageDelayed(1, 0); } }.run(); new Thread(){ public void run() { mHandler.sendEmptyMessageDelayed(2, 0); } }.run(); new Thread(){ public void run() { mHandler.sendEmptyMessageDelayed(3, 0); } }.run(); } 这样可以么
恩 这个可以
yuebanmumu 2013-08-07
  • 打赏
  • 举报
回复
引用 2 楼 tanwei4199 的回复:
new Thread(){ public void run() { view1.loadUrl("****"); } }.run(); 我擦 你在子线程能操作view?
WebView不用线程的吧
荒颜 2013-08-07
  • 打赏
  • 举报
回复
new Thread(){ public void run() { view1.loadUrl("****"); } }.run(); 我擦 你在子线程能操作view?
zx362168897 2013-08-07
  • 打赏
  • 举报
回复
就剩下这点分了 大神们别计较啊~~

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧