2013-10-30 1 views
0

AIDL 스텁 구현에서 sqlite DB (패키지의 다른 부분으로 채워짐)에 액세스하려고하지만 거기에 컨텍스트가 없습니다. 문맥을 어떻게 얻을 수 있습니까? 2 개의 프로젝트 (응용 프로그램) - A, B가 있습니다. 프로젝트 A에는 sqlite DB에 대한 레코드가 보관됩니다. 보조 서비스가 포함되어 있습니다. 프로젝트 B는 프로젝트 A (다른 패키지, B와 같은 많은 프로젝트가있을 수 있음)에 레코드가 존재하면 요청해야합니다. 프로젝트 A가 스텁에서 프로젝트 B에 응답하는 유일한 방법은 DB가 컨텍스트 (아래 코드에서 "?????")를 갖는지 확인하는 것입니다 - 어떻게 스텁에서 프로젝트 A의 컨텍스트를 가져올 수 있습니까?aidl 서비스 구현 내에서 컨텍스트 사용

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(); 
    } 
} 

감사합니다! 문제가 해결

답변

1

- 생성자를 통해 ServiceContext을 전달하고 개인 필드로 IRecordServiceImpl에 보관 할 수

관련 문제