在android开发中经常会有很多耗时操作,如果都放在ui线程可能会造成线程阻塞,出现ANR问题,因此例如网络加载等耗时操作应放入子线程进行,更新ui放在ui线程,下面是几种操作方法:
1、handler+message
public class MainActivity extends Activity {
Handler mHandler;
MyThread mThread;
TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initData();
}
private void initData() {
tv= (TextView) findViewById(R.id.tv);
mHandler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case 1:
tv.setText(msg.getData().getString("msg"));
break;
default:
break;
}
}
};
mThread=new MyThread();
mThread.start();