【发布时间】:2014-06-16 17:58:33
【问题描述】:
在服务中启动一个线程并尝试使用处理程序更新线程中的 UI。我可以使用 getMainLooper 在子线程中定义一个处理程序吗?
MainActivity.java:
public class MainActivity extends Activity {
...
@Override
protected void onCreate(Bundle savedInstanceState) {
...
btn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
it=new Intent(getApplicationContext(), Myservice.class);
startService(it);
}
});
}
Handler mhandler= new Handler(){
public void handleMessage(Message msg){
switch(msg.what){
case 1:
edt.setText("Service");
break;
}
}
};
}
我的服务.java:
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO Auto-generated method stub
Thread thread = new Thread(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
Handler handler=new Handler(getMainLooper());
Message msg = Message.obtain(handler, 1);
handler.sendMessage(msg);
}
});
thread.start();
return super.onStartCommand(intent, flags, startId);
}
【问题讨论】:
标签: android multithreading service handler