在handler(二)中点击打开链接,我们说handler是开启了另外一个线程,而且看代码的话确实是这样,实现了runnable接口,这在java中就是开启了一个线程,但是情况中的是这样吗?我们不妨来做个试验,如下
package com.handlerThread;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
public class handlerThread extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Handler handler = new Handler();
handler.post(r);
System.out.println("activity线程ID:"+Thread.currentThread().getId());
System.out.println("activity线程name:"+Thread.currentThread().getName());
}
Runnab

本文通过实验揭示Android Handler并非如表面那样开启新线程,而是与Activity处于同一线程。对比标准Java线程写法,Handler实现Runnable接口但不启动线程,直接调用run方法,引发设计目的的思考。
handler真的是重新启动一个线程吗?&spm=1001.2101.3001.5002&articleId=8194385&d=1&t=3&u=c6a8685836fa47ee9f655c791cce4aec)
500

被折叠的 条评论
为什么被折叠?



