欢迎来到天天文库
浏览记录
ID:14264435
大小:113.00 KB
页数:36页
时间:2018-07-27
《android service和activity基于串口蓝牙模块的双向通信》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、AndroidService和Activity基于串口蓝牙模块的双向通信驱动蓝牙模块可以在Activity中直接调用,也可以在多线程下直接使用,但这样会存在一个缺陷:当你按下手机的Home或者Back键的时候.程序退出了,下次你重新启动软件的时候又需要重新建立蓝牙的链接了.为了克服以上问题,我把蓝牙模块的调用放到Service里面使用.首先对Service说明下:(来源于http://tianrui-wang-163-com.iteye.com/blog/983099)Service介绍Android中的服务和w
2、indows中的服务是类似的东西,服务一般没有用户操作界面,它运行于系统中不容易被用户发觉,可以使用它开发如监控之类的程序。由于没有可视化界面,Service都是从其它程序组件中启动、停止和控制,这些组件包括其它的Service、Activity和BroadcastReceiver。如果你的应用程序正常且不间断的运行,而不直接依赖于用户输入,Service是你最佳的选择。Service生命周期服务常用生命周期回调方法如下:onCreate()该方法在服务被创建时调用,该方法只会被调用一次,无论调用多少次start
3、Service()或bindService()方法,服务也只被创建一次。onDestroy()该方法在服务被终止时调用。Service对象不能自己启动,需要通过某个Activity、Service或者其他Context对象来启动。启动的方法有两种,Context.startService和Context.bindService()。两种方式的生命周期是不同的,具体如下所示。Context.startService方式的生命周期:启动时,startService–>onCreate()–>onStart()停止时,
4、stopService–>onDestroy()Context.bindService方式的生命周期:绑定时,bindService->onCreate()–>onBind()解绑定时,unbindService–>onUnbind()–>onDestory()Service实现定义一个Service只需要如下两步:第一步:继承Service类publicclassSMSServiceextendsService{}这里可以选择要实现的方法第二步:在AndroidManifest.xml文件中的5、ion>节点里对服务进行配置:好了,废话少说,下面从我的代码直接开始:[java]viewplaincopyprint?packagecom.lxx;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjava.util.UUID;importandroid.app.Service;importandroi6、d.bluetooth.BluetoothAdapter;importandroid.bluetooth.BluetoothDevice;importandroid.bluetooth.BluetoothSocket;importandroid.content.BroadcastReceiver;importandroid.content.Context;importandroid.content.Intent;importandroid.content.IntentFilter;importandroid.os7、.IBinder;importandroid.util.Log;publicclassMyServiceextendsService{publicbooleanthreadFlag=true;MyThreadmyThread;CommandReceivercmdReceiver;//继承自BroadcastReceiver对象,用于得到Activity发送过来的命令/**************service命令*********/staticfinalintCMD_STOP_SERVICE=0x01;stati8、cfinalintCMD_SEND_DATA=0x02;staticfinalintCMD_SYSTEM_EXIT=0x03;staticfinalintCMD_SHOW_TOAST=0x04;privateBluetoothAdaptermBluetoothAdapter=null;privateBluetoothSocketbtSocket=null;privateO
5、ion>节点里对服务进行配置:好了,废话少说,下面从我的代码直接开始:[java]viewplaincopyprint?packagecom.lxx;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjava.util.UUID;importandroid.app.Service;importandroi
6、d.bluetooth.BluetoothAdapter;importandroid.bluetooth.BluetoothDevice;importandroid.bluetooth.BluetoothSocket;importandroid.content.BroadcastReceiver;importandroid.content.Context;importandroid.content.Intent;importandroid.content.IntentFilter;importandroid.os
7、.IBinder;importandroid.util.Log;publicclassMyServiceextendsService{publicbooleanthreadFlag=true;MyThreadmyThread;CommandReceivercmdReceiver;//继承自BroadcastReceiver对象,用于得到Activity发送过来的命令/**************service命令*********/staticfinalintCMD_STOP_SERVICE=0x01;stati
8、cfinalintCMD_SEND_DATA=0x02;staticfinalintCMD_SYSTEM_EXIT=0x03;staticfinalintCMD_SHOW_TOAST=0x04;privateBluetoothAdaptermBluetoothAdapter=null;privateBluetoothSocketbtSocket=null;privateO
此文档下载收益归作者所有