代码如下:
public class MainActivity extends Activity implements Runnable{
Handler handler = new Handler(){
public void handleMessage(Message msg){
S.p(Thread.currentThread().getId()+"-------------Handler");
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
S.p(Thread.currentThread().getId()+"-------------MainActivity");
new Thread(this).start();
}
@Override
public void run() {
S.p(Thread.currentThread().getId()+"-------------New Thread");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
handler.handleMessage(handler.obtainMessage());
}
}
public class MainActivity extends Activity implements Runnable{
Handler handler = new Handler(){
public void handleMessage(Message msg){
S.p(Thread.currentThread().getId()+"-------------Handler");
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
S.p(Thread.currentThread().getId()+"-------------MainActivity");
new Thread(this).start();
}
@Override
public void run() {
S.p(Thread.currentThread().getId()+"-------------New Thread");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
handler.handleMessage(handler.obtainMessage());
}
}
解决方案 »
- android如何获取一个SD卡指定文件夹的图片Uri uri问题
- ClassNotFoundException错误怎么解决
- android 修改系统默认时区以及显示语言
- Android创建新项目的时候出现如下问题,求大神指教。。。
- 用蓝牙同时传输文本和图片的问题
- appwidget开机后自动添加到Home Screen
- 求助,EditText中设置phoneNumber="true"的问题。
- tabHost+listview UI 界面---新手问题
- yahoo appid 如何获取
- 怎样用代码设置让layout 和里面的内容不可编辑
- Android 客户端自动升级后一打开就异常关闭
- android webView 不能播放优酷视频
Handler handler = new Handler(){
public void handleMessage(Message msg){
S.p(Thread.currentThread().getId()+"-------------Handler"); //这是主线程ID
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
S.p(Thread.currentThread().getId()+"-------------MainActivity"); //这是主线程ID
new Thread(this).start();
}
@Override
public void run() {
S.p(Thread.currentThread().getId()+"-------------New Thread"); //这是新线程ID
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
handler.handleMessage(handler.obtainMessage());
}
}
谢谢你的回答。我在运行这个程序的时候,得到的结果是这样:08-28 02:51:13.838: INFO/System.out(437): 1-------------MainActivity
08-28 02:51:14.248: INFO/System.out(437): 8-------------New Thread
08-28 02:51:17.317: INFO/System.out(437): 8-------------Handler
不知道handler为何会和子线程取得相同ID,还请指教。
不仔细看还没看到呢 :-) 你用错了handler.handleMessage(handler.obtainMessage());
改成handler.sendMessage(handler.obtainMessage());
不然相当于子函数调用了。