《安卓系统Android应用程序开发PPT教材_第7章后台服务(7).ppt》由会员分享,可在线阅读,更多相关《安卓系统Android应用程序开发PPT教材_第7章后台服务(7).ppt(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、7.2 本地服务n7.2.2 使用线程n第1行代码建立了一个静态的Handler对象,但这个对象是私有的,因此外部代码并不能直接调用这个Handler对象1.private static Handler handler=new Handler();public static void UpdateGUI(double refreshDouble)handler.post(RefreshLable);1.private static Runnable RefreshLable=new Runnable()Override1.public void run()/过程代码;7.2 本地服务n7.2.
2、2 使用线程n第3行UpdateGUI()是公有的界面更新函数,后台线程通过调用该函数,将后台产生的数据refreshDouble传递到UpdateGUI()函数内部,然后并直接调用post()方法,将第6行的创建的Runnable对象传递给界面线程(主线程)的消息队列中n第7行到第10行代码是Runnable对象中需要重载的run()函数,一般将界面更新代码放置在run()函数中7.2 本地服务n7.2.2 使用线程q示例ThreadRandomServiceDemo使用线程持续产生随机数n点击“启动Service”后,将启动后台线程n点击“停止Service”后,将关闭后台线程n后台线程每
3、1秒钟产生一个0到1之间的随机数,并通过Handler将产生的随机数显示在用户界面上7.2 本地服务n7.2.2 使用线程q在ThreadRandomServiceDemo示例中,RandomService.java文件是描述Service的文件,用来创建线程、产生随机数和调用界面更新函数qRandomService.java文件的完整代码如下1.package edu.hrbeu.ThreadRandomServiceDemo;import android.app.Service;import android.content.Intent;import android.os.IBinder;
4、1.import android.widget.Toast;public class RandomService extends Service private Thread workThread;http:/www.anzhuo.cc/forum-58-1.html 安卓HTC One X论坛 7.2 本地服务n7.2.2 使用线程12.Override13.public void onCreate()14.super.onCreate();15.Toast.makeText(this,(1)调用onCreate(),16.Toast.LENGTH_LONG).show();17.workThread=new Thread(null,backgroudWork,WorkThread);18.19.20.Override21.public void onStart(Intent intent,int startId)22.super.onStart(intent,startId);23.Toast.makeText(this,(2)调用onStart(),24.Toast.LENGTH_SHORT).show();25.if(!workThread.isAlive()26.workThread.start();27.28.29.