2015-07-02 44 views
1

我正在使用Zumero與我的Android應用程序同步到MS SQL服務器,我的SQLite數據庫存儲在SD卡上。當我運行同步時,它會在更新SQLite數據庫之前在內部存儲器中創建一個緩存文件。這會導致內部存儲問題,並且由於存儲空間不足導致操作系統在更新數據庫之前刪除緩存文件。如何強制應用程序使用SD卡作爲緩存文件?使用Zumero同步android應用程序,更改緩存文件的位置

回答

0

您需要直接使用Zumero Java文件作爲應用程序的一部分(在SDK中查找ZumeroClient.java等),然後編輯正在使用的臨時路徑。將它們編譯到您的應用程序中,而不是使用zumero.jar(您仍然需要合適的.so庫)。

開箱即用,Zumero使用Android上下文提供的緩存路徑。您需要編輯對native_sync()的呼叫,並將最後一個參數替換爲SD卡上的路徑。

例如

native_sync(databasePath, encryptionKey, serverURL, dbFile, authScheme, 
      username, password, context.getCacheDir().getAbsolutePath()); 

將成爲

native_sync(databasePath, encryptionKey, serverURL, dbFile, authScheme, 
      username, password, myCacheDir); 
+0

我使用 '代碼' PU blic文件getCacheFolder(上下文上下文){ \t \t File cacheDir = null; \t \t如果(Environment.getExternalStorageState()等於(Environment.MEDIA_MOUNTED)){ \t \t \t cacheDir =新的文件(Environment.getExternalStorageDirectory(), 「cachefolder」); \t \t \t如果{ \t \t \t \t cacheDir.mkdirs()(cacheDir.isDirectory()!); \t \t \t} \t \t} \t \t如果{ \t \t \t cacheDir = context.getCacheDir()(cacheDir.isDirectory()!); //獲取系統的緩存文件夾 \t \t} \t \t回報cacheDir; \t} 'code' 獲取目錄。 如何讓它進入同步功能? – RdDragon

1

我有工作通過更換

context.getCacheDir().getAbsolutePath() 

context.getExternalCacheDir().getAbsolutePath() 
相關問題