Android3教程.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android 手机开发 第13章 Service BroadcastReceiver Service BroadcastReceiver 理解Service组件的作用及使用方法 启动、停止Service 绑定本地Service并与之通信 Service的生命周期 TelephonyManager, 监听手机电话 SmsManager,监听手机短信 AudioManager, 管理手机音量 VibratorManager, 管理手机震动 AlarmManager,管理手机闹钟 BroadcastReceiver组件的作用和使用 发送广播,接收系统广播 Service简介 与Activity相似,代表可执行的应用程序 需要从Service类派生出子类 Service具有自己的生命周期 Service也需要在manifest.xml文件中注册 Service 也是由Context类派生出来 Service在后台运行,没有用户界面 创建Service 的步骤: 实现Service类的子类 在manifest.xml中注册Service组件 创建、配置Service 继承Service类,复写其生命周期函数 void onCreate( ) : 创建Service后回调该方法 void onStartCommand(Intent intent, int flags, int startId): 通过startService()启动Service时都会回调该方法 void onDestroy( ) : 当Service 被关闭之前 abstract IBinder onBind( ) boolean onUnbind( ) 启动与停止服务 启动Service // 显式 Intent intent=new Intent(this, oneService.class); // 隐式 //Intent intent=new Intent(); //Intent.setAction(someAction); startService(intent); 停止Service stopService(Intent) stopSelf(id) 继承IntentService类 因为多数启动服务不必同时处理多个请求(在多线程情境下会很危险),所以使用IntentService类实现服务是非常好的选择。IntentService完成如下任务: 创建区别于应用程序主线程的默认工作线程来执行发送到onStartCommand()方法的全部Intent; 创建工作队列每次传递一个Intent到onHandleIntent()方法实现,这样就不必担心多线程; 所有启动请求处理完毕后停止服务,这样就不必调用stopSelf()方法; 提供onBind()方法默认实现,其返回值是null; 提供onStartCommand()方法默认实现,它先发送Intent到工作队列然后到onHandleIntent()方法实现。 绑定本地Service并与之通信 bindService(Intent intent, ServiceConnection conn, int flags) ServiceConnection 接口 onServiceConnected(ComponentName name, IBinder binder) onServiceDisconnected(ComponentName name) unbindService(ServiceConnection conn) Service生命周期 启动Service 绑定Service 跨进程调用Service (AIDL) 在不同应用之间传递对象的接口语言 假设A应用要调用B应用的download (String path)方法 B应用以Service的方式向A应用提供服务 完成AIDL需要四个步骤 跨进程调用Service (AIDL) 步骤一: 在B应用中创建*.aidl 文件,定义接口类: Package eg.service.B; interface IDownload { void download(String path); } 跨进程调用Service (AIDL) 步骤二: 在B应用中实现*.aidl 文件生成的接口: private IDownload.Stub binder=new IDownload.Stub() { @Override public void download(String path) throws RemoteException { // TODO Auto

文档评论(0)

我是兰花草 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档