标签:android thread android开发 线程 多线程
今天在开发的过程中需要给之前的程序加上多线程操作,避免networrk on mainthread。
由于代码很多,变量之间错综复杂,后面的变量需要在前面代码的线程中获取,线程的同步就非常关键
我知道的线程同步的方法主要是thread.join(),等待另一个线程的完成再继续进行本线程的工作。
不过在android中,mainThread控制着屏幕的刷新,如果调用在main thread中调用join将会导致屏幕无法刷新。
所以,我们可以通过专门新建一个线程,用这个线程来等待已有线程的结束,在已有线程结束后,在通过runOnUIThread方法通知屏幕刷新。
这是我们的耗时线程(模拟运行3秒):
thread1=new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
thread1.start();
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
try {
thread1.join();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}runOnUiThread(new Runnable() {
public void run() {
tv2.setText("Tread complete!");
}
});
}
}).start();
源码在这里:→http://download.csdn.net/detail/edwardwayne/8697147
标签:android thread android开发 线程 多线程
原文地址:http://blog.csdn.net/edwardwayne/article/details/45699883