Android多线程的一个简单示例
最近做的一个程序,由于在启动的时候需要在后台初始化比较多的内容,为了让用户不等待很久的时间,准备展示一个启动画面,在后台的线程里完成初始化以后通知前台的主线程销毁掉启动画面进行后续的工作~
首先,我们需要new一个Thread,并实现它的run方法,在里面添加一些我们需要后台进行的比较长时间的操作,同时需要创建一个message,并定义好它的属性,在完成后台操作后将消息发送给其他线程,让他们执行相关的操作。
public class MainView extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.load); //display loading picture new Thread() { public void run() { Message m = new Message(); m.what = MainView.GUI_STOP_NOTIFIER; //some initialization //...... //...... MainView.this.myMessageHandler.sendMessage(m); } }.start(); } }
当后台线程完成工作,并成功发出消息后,我们需要在这个activity里定义了消息处理器,用来处理这个消息,处理的switch语句判断的条件就是传进来消息的msg.what
Handler myMessageHandler = new Handler() { // @Override public void handleMessage(Message msg) { switch (msg.what) { /* 当取得识别为 离开运行线程时所取得的信息 */ case MainView.GUI_STOP_NOTIFIER: loadmain(); Thread.currentThread().interrupt(); break; case MainView.GUI_THREADING_NOTIFIER: if (!Thread.currentThread().isInterrupted()) { } break; } super.handleMessage(msg); } }
这样程序在loadmain里面绘制主界面即可
相关推荐
PrisonJoker 2020-04-16
ChainDestiny 2020-04-08
kangtingting0 2010-08-31
luoj 2011-08-22
TTHHVV 2011-09-17
gavinvong 2019-07-01
xzw 2019-07-01
OliverLau 2019-06-29
Jemy杰 2019-06-26
zyjibai 2016-05-16
lf0 2014-09-17
yangaiyu 2014-07-18
hellowangshao 2013-11-10
zhuch 2013-10-10
lgzaaron 2013-05-07
magic00 2013-03-16
fanleiym 2013-02-18
bible 2012-07-22