文档详情

移动平台应用软件开发多线程.PDF

发布:2018-02-04约2.43千字共10页下载文档
文本预览下载声明
移动平台应用软件开发 多线程 主讲:张齐勋 zhangqx@ 《移动平台应用软件开发》课程建设小组 北京大学 二零一五年 Android 中的多线程 •  主线程(Main Thread) –  主要负责处理与UI相关的事件,如 :用户 的按键事件,用户接触屏幕的事件以及屏 幕绘图事 件,并把相关的事件分发到对应 的组件进行处理。所以主线程通常又被叫 做UI线 程。 •  子线程 负责除UI之外较费时的操作,如从网络上 下载数据,或者访问数据库 示例:ANR(Application is not responding) Ø  运行在主线程里的任何方法 都尽可能少做事情。 Ø  可能会产生阻塞的工作不要 放在主线程中。 线程的基本用法 class MyThread extends Thread{ @Override public void run() { Log.d(myapp,mythread is running); } } new MyThread().start(); class MyThread implements Runnable{ @Override public void run() { Log.d(myapp, mythread2 is running); } } MyThread mythread = new MyThread(); new Thread(mythread).start(); 子线程中更新UI •  只有UI线程才能直接操作UI控件。 •  Android提供一种 异步消息处理机制。涉 及以下四个部分 : –  Handler; –  Message; –  MessageQueue; –  Looper; 代码示例 主线程增加Handler : handler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case 0: labelTimer.setText(逝去了 + msg.obj + 秒); } } }; ⼦线程的循环体中增加如下语句: Message msg = new Message(); msg.obj = timer; msg.what = 0; handler.sendMessage(msg); /Program/Android/2011/09/14/41806.shtml 出⾃: 思考 •  在天⽓预报项⺫中,如何将获取的⺴ UI 络数据显⽰在 界⾯上? 其他Android 多线程机制 •  Android提一个工具类Async
显示全部
相似文档