我正在尝试在AIDL存根实现上访问sqlite DB(在包的不同部分填充)但是 - 那里没有上下文。我怎样才能获得上下文? 有2个项目(申请) - A,B。 项目A包含在sqlite DB上保留记录。并包含援助服务。 如果存在记录,项目B需要询问项目A(不同的包,可能有许多项目,如B)。项目A从存根中回答项目B的唯一方法是检查数据库是否有上下文(下面的代码中的“?????”) - 如何从存根中获取项目A的上下文?
AIDL的实施:
public class IRecordServiceImpl extends IRecordService.Stub{
@Override
public boolean RecordExists(String recordKey)
throws RemoteException {
boolean returnValue = false;
RecordDataSource rds = new RecordDataSource(??????);
rds.Open();
returnValue = rds.isRecordExists(recordKey);
rds.Close();
return returnValue;
}
}
服务代码:
public class IRecordService extends Service {
private IRecordServiceImpl service;
@Override
public void onCreate() {
super.onCreate();
this.service = new IRecordServiceImpl();
}
@Override
public IBinder onBind(Intent intent) {
return this.service;
}
@Override
public boolean onUnbind(Intent intent) {
return super.onUnbind(intent);
}
@Override
public void onDestroy() {
super.onDestroy();
}
}
谢谢!
答案 0 :(得分:1)
问题已解决 - 您可以通过构造函数传递Service
的{{1}}并将其作为私有字段保存在Context