概述
在低版本(7.0)系统上服务的绑定一般使用
private String MYKEY_PACKAGE_NAME = "服务的包名";
private String CONNECT_CLASS_PATH = "服务包名+服务类";
//该方法不适用8.0系统
private void bindService() {
Intent intent = new Intent();
intent.setAction(CONNECT_CLASS_PATH );
intent.setPackage(MYKEY_PACKAGE_NAME );
boolean result = bindService(intent, mServiceConnection, BIND_AUTO_CREATE);
Log.e(TAG,"result = "+result);
}
高版本系统呢是不支持以上绑定方法的,而在高版本系统中要使用一下方法去做绑定
/**
* Android 8。0系统以上绑定服务方法
*
*/
private void bindService2() {
try {
Intent intent = new Intent();
intent.setComponent(new ComponentName(MYKEY_PACKAGE_NAME, CONNECT_CLASS_PATH));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
startForegroundService(intent);
} else {
startService(intent);
}
boolean bindResult = bindService(intent, mServiceConnection, Context.BIND_AUTO_CREATE);
Log.e(TAG,"bindResult = "+bindResult);
} catch (Exception e) {
e.printStackTrace();
}
}
ServiceConnection mServiceConnection = new ServiceConnection() {
//系统会调用该方法以传递服务的onBind()方法返回的IBinder
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
Log.e(TAG,"IBinder = " );
}
//Android系统会在与服务的连接以外中断时(例如当服务崩溃或被终止时)调用该方法
//但客户端取消绑定时,系统“绝对不会”调用该方法
@Override
public void onServiceDisconnected(ComponentName name) {
}
};
最后
以上就是冷艳寒风为你收集整理的Android bindService服务的全部内容,希望文章能够帮你解决Android bindService服务所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复