2013-10-30 32 views
0

我想在AIDL存根實現上訪問sqlite數據庫(填充在不同的包上),但是 - 這裏沒有上下文。我如何獲得上下文? 有2個項目(申請) - A,B。 項目A包含在sqlite數據庫上的記錄。幷包含aidl服務。 如果存在記錄,則項目B需要詢問項目A(不同的包,可以有許多像B的項目)。項目A從存根中回答項目B的唯一方法是檢查數據庫是否具有上下文(下面代碼中的「?????」) - 如何從存根中獲取項目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私人領域