欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android 多线程的实现方法总结

程序员文章站 2023-11-29 09:49:52
android 多线程的实例详解 java多线程方式 1. 继承thread线程,实现run方法 2. 实现runnable接口 java单继承性,当我...

android 多线程的实例详解

java多线程方式

1. 继承thread线程,实现run方法

2. 实现runnable接口

java单继承性,当我们想将一个已经继承了其他类的子类放到thread中时,单继承的局限就体现出来了

但是可以实现多个接口,所以第二种方法相对于第一种来说灵活许多

其次,通过

new thread(runnable runnable).start() 

启动线程的方式,若变量在runnable中定义,多个线程可以共用,因为来自同一个对象

比较适合多个相同程序代码的线程去处理同一资源的情况

android多线程方式

主要集中在ui线程和其他线程的交互问题上

1. thread,handler,message
2. asynctask
3. runnable

第一种方式,new thread()然后通过handler sendmessage,由handler的handlemessage方法实现对应的处理,完成与ui进程的交互

private handler mhandler = new handler(){
  public void handlemessage(message msg) {
    /*do sth through msg */
  }
}

public badthread extends thread {
  private final static string tag = this.getclass().getname();

  public void run() {
    /*coding*/
  }
};

new badthread().start();

第二种方式,异步线程的方式,doinbackground()中执行任务,onpreexecute()准备工作,onpostexecute()任务结束后调用,onprogressupdate与publishprogress配合使用,实现和ui线程的交互

asynctask mloadingtask = new asynctask(){
  protected object doinbackground(object[] objects) {
  }
  protected void onprogressupdate(object[] values) {
  }
  ......
}

mloadingtask.execute();

第三种方式,runnable对象,通过handler直接post等方法启动线程,实现与ui线程的交互

private runnable mrunnable = new runnable(){
  public void run() { 
    /*do sth*/
  }
}

mhandler.post(mrunnable);

以上就是android 多线程实现的三种方法,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!