代码如下:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Runnable run = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
try {
//各种代码略过
}
catch (Exception e) {
Log.e("ConnectSocket", "connectTest异常" + e.toString());
e.printStackTrace();
}
finally {
}
}
};
run.run();
}
测试发现,activity是等待runnable里面的内容执行完才create成功的,难道不是,runnable作为线程自己去执行自己,activity在主线程里面自己创建自己吗?为何要等待从线程呢?想不明白
回复讨论(解决方案)
应该是Thread th = new Thread(runnable); th.start();
应该是Thread th = new Thread(runnable); th.start();
run。run()
和th.start()有什么区别啊,不都是新启动了一个线程,让线程执行吗? 你那就不是启动的一个线程,需要继承Thread 或者实现Runnable
正确写法:
new Thread(new Runnable() {
@Override
public void run() {
}
}).start();
} 这样只是一个方法。
Thread才是并行的
Runnable放Thread里才是并行Runnable里的方法。