0

我正在尝试在 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();
    }
}

谢谢!

4

1 回答 1

0

问题已解决 - 您可以通过构造函数传递Service'sContext并将其IRecordServiceImpl作为私有字段保存

于 2013-10-30T11:28:14.660 回答