当前位置: 移动技术网 > IT编程>移动开发>Android > Android 在其他线程中更新UI线程的解决方法

Android 在其他线程中更新UI线程的解决方法

2019年07月24日  | 移动技术网IT编程  | 我要评论

战雷分集剧情,超人迪加之最终决战粤语,无敌龙书屋论坛

方法一:activity.runonuithread(runnable )
(经验之道: 这个最好用, 凡是要刷新页面的地方,
activity.runonuithread( new runnable()
    { public void run(){更新ui}}
);

方法二:子线程调用handler的sendmessage(message)发送事件。
复制代码 代码如下:

mhandler = new handler() { 
   @override 
   public void handlemessage(message msg) { 
        //操作界面 
       mytext.settext( 来自网络的信息); 
      super.handlemessage(msg); 
   } 
  }; 
public class mythread extends thread { 
     public void run() { 
​    ​    ​    // 耗时操作 
​    ​    ​    ​loadnetwork(); 
            message msg = new message(); 
            mhandler.sendmessage(msg);//向handler发送消息, 
      } 
 }

方法三:view.post(runnable )
复制代码 代码如下:

public void onclick( view v ) { 
        new thread( new runnable() { 
                public void run() { 
                       // 耗时操作 
​    ​    ​    ​    ​    ​      loadnetwork(); 
​                          mytext.( new runnable() { 
                                  mytext.settext( 来自网络的信息); 
                          }); 
                 } 
        }).start(); 
}

方法四:asynctask
复制代码 代码如下:

//ui线程中执行 
new downloadimagetask().execute( "www.91dota.com" ); 
private class downloadimagetask extends asynctask { 
    protected string doinbackground( string... url ) { 
         return loaddataformnetwork( url[0] );//后台耗时操作 
    } 

    protected void onpostexecute( string result ) { 
          mytext.settext( result ); //得到来自网络的信息刷新页面  

   } 
}

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网