dropbox数据存储表不会在卸载和重新安装时显示

时间:2014-03-30 23:20:29

标签: android dropbox-api

我正在使用datastore api在dropbox上从我的Android应用程序创建一些表。

假设我在表格中插入了一些数据。我确实调用了sync(),数据在应用控制台的browse datastores中可见。但是,当我卸载应用程序并重新安装它,并尝试查找用户是否有来自此应用程序的任何现有数据。它永远不会出现。 store.getTables()只是一无所获。

我的目的是能够在重新安装期间从应用程序导入任何现有数据。

示例代码: 在第一次安装中,

DbxDatastore store = manager.openDefaultDatastore();
DbxTable table1 = store.getTable("table1");
table1.insert().set("name","test");
store.sync();

执行上述步骤后,t​​able1在应用控制台的browse datastores中显示1条记录。现在,如果我卸载应用程序并重新安装它,我想读取数据存储区中存在的1条记录。

DbxDatastore store = manager.openDefaultDatastore();
Set<DbxTable> tablesList = store.getTables(); 

这里getTables()不会返回任何内容。即使我在调用getTables()之前调用store.sync(),它也不返回任何内容。

如何在重新安装应用程序时导入现有数据?

Android SDK版本:4.4.2和4.3,包含dropbox sync和datastore api

1 个答案:

答案 0 :(得分:1)

看起来我的评论是正确的。您在打开数据存储区后立即呼叫getTables,因此尚未下载任何数据。这意味着您只是在寻找本地缓存的内容(对于刚刚链接的帐户,任何内容都不会在本地缓存。)

您应该向数据存储添加侦听器并等待其状态以指示同步已完成。见https://www.dropbox.com/developers/datastore/docs/android#com.dropbox.sync.android.DbxDatastoreStatus。我相信你会第一次等isDownloading假。

那就是说,通常你只会设置一个监听器,它会在任何时候发生变化时更新你的用户界面......你真的需要在首次链接账户时做一些特别的事情吗?

相关问题