博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在TabActivity中无法使用bindService的解决方法
阅读量:6228 次
发布时间:2019-06-21

本文共 1038 字,大约阅读时间需要 3 分钟。

在TabActivity中无法使用bindService的解决方法

问题描述:

在单独Activity中startService bindService 都是正常的,把Activity放到TabActivity框架中以后bindService的ServiceConnection无法返回bind对象。
结果多次测试发现 Google Android Issue中有这个缺陷,缺陷详细信息在这里(Google Android Issue 2483)

解决方法:

Using getApplicationContext().bindService instead of just bindService on your activity solves the problem as it is using the higher level application context.

需要先调用 getApplicationContext()获取其所属的Activity的上下文环境才能正常bindService,

即用this.getApplicationContext().bindService([args…])代替原来的bindService([args…]),否则将永远失败返回false,remote service 返回也为null。

实例代码:

mServiceConnection = new ServiceConnection() {@Overridepublic void onServiceConnected(ComponentName componentName,IBinder binder) {Log.i(TAG, "onServiceConnected ");}@Overridepublic void onServiceDisconnected(ComponentName componentName) {Log.i(TAG, "onServiceDisconnected ");}};//在tabhost中必须用 this.getApplicationContext().bindServicethis.getApplicationContext().bindService(new Intent(this, HrmService.class), mServiceConnection, Service.BIND_AUTO_CREATE);

  

转载地址:http://acnna.baihongyu.com/

你可能感兴趣的文章
XAMPP permissions on Mac OS X
查看>>
ffmpeg
查看>>
openGL一些概念02
查看>>
Java应用集群下的定时任务处理方案(mysql)
查看>>
Android开发经验小知识点
查看>>
su: cannot set user id: Resource temporarily unavailable【转】
查看>>
STL中的nth_element()方法的使用
查看>>
c语言循环单链表
查看>>
Android 自己主动化測试(3)<monkeyrunner> 依据ID查找对象&touch&type (python)...
查看>>
IDEA中Ctrl+Shift+F快捷键无效的解决方式
查看>>
git 笔记
查看>>
C# SignalR 即时通信
查看>>
Android之——自己主动挂断电话的实现
查看>>
springcloud-01-介绍
查看>>
sqlite自己主动更新数据库
查看>>
管理中的外行与内行
查看>>
【5】JVM-垃圾收集器
查看>>
音频变调技术
查看>>
Installation error: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED
查看>>
解决App can’t be opened because it is from an unidentified developer
查看>>