如何在Android Wear中调用保存的数据项?

如何在Android Wear中调用保存的数据项?,android,wear-os,android-wear-data-api,Android,Wear Os,Android Wear Data Api,我正在创建一个手表,可以通过手机上的应用程序定制颜色 我见过一些示例使用DataApi和DataItem保存/加载设置 我遇到的问题是,当我换到另一个手表并换回来时,DataMap中的所有值似乎都重置为null或0 下面是我的Wear watchface的onCreate()方法示例,它将尝试加载上次使用的颜色: PendingResult<DataItemBuffer> results = Wearable.DataApi.getDataItems(mGoogleApiCl

我正在创建一个手表,可以通过手机上的应用程序定制颜色

我见过一些示例使用
DataApi
DataItem
保存/加载设置

我遇到的问题是,当我换到另一个手表并换回来时,
DataMap
中的所有值似乎都重置为null或0

下面是我的Wear watchface的
onCreate()
方法示例,它将尝试加载上次使用的颜色:

    PendingResult<DataItemBuffer> results = Wearable.DataApi.getDataItems(mGoogleApiClient);
    results.setResultCallback(new ResultCallback<DataItemBuffer>() {
        @Override
        public void onResult(DataItemBuffer dataItems) {
        if (dataItems.getCount() != 0) {
            for (int i = 0; i < dataItems.getCount(); i++) {
                DataMapItem dataMapItem = DataMapIfromDataItem(dataItems.get(i));
                if (dataMapItem.getDataMap().containsKey(COLOR_KEY)) {
                    mSelectedColor = dataMapItem.getDataMap().getInt(COLOR_PATH);
                    }
                }
            }
            dataItems.release();
        }
    });
发送/检索颜色值在运行时起作用,并且
ondestory()
onStop()
不会将数据修改回0

当活动/监视面关闭时,数据项是否会自动“处理”,或者我的实现是否有误


谢谢你的帮助

我想你在
getInt
调用中得到了错误的常量
COLOR\u PATH
是URI路径,
COLOR\u KEY
是您试图检索的
int
的键。你应该:

mSelectedColor = dataMapItem.getDataMap().getInt(COLOR_KEY);

哦,老兄。。。真不敢相信我犯了这么明显的错误:/非常感谢!
mSelectedColor = dataMapItem.getDataMap().getInt(COLOR_KEY);