【发布时间】:2015-09-12 04:24:41
【问题描述】:
我正在开发可穿戴和手持设备的演示应用程序。 当磨损开始时,它会向手持设备发送请求并获取列表以及时间戳。当我们单击任何列表项时,它会再次将更改发送到掌上电脑。 这很好用
但我不想在单击设备列表时发送列表。 在设备活动线程中
class SendToDataLayerThread extends Thread {
String path;
DataMap dataMap;
SendToDataLayerThread(String p,DataMap d){
path = p;
dataMap = d;
}
@Override
public void run() {
PutDataMapRequest putDMR= PutDataMapRequest.create(path);
ArrayList<Job> arrlist=new ArrayList<>();
ArrayList<String> staticArray=new ArrayList<>();
mydb=new DBHelper(ListOfTaskActivity.this);
arrlist.clear();
arrlist = mydb.getAllCalls();
if(arrlist.size()>0) {
for (int i = 0; i < arrlist.size(); i++) {
staticArray.add(arrlist.get(i).get_id()+"~"+arrlist.get(i).getJob_status()+"~"+arrlist.get(i).getJob_placename());
}
}
dataMap.putStringArrayList("CallArrayList", staticArray);
NodeApi.GetConnectedNodesResult nodes = Wearable.NodeApi.getConnectedNodes(wagoogleApiClient).await();
for(Node node : nodes.getNodes()) {
if(wagoogleApiClient.isConnected()){
dataMap.putLong("new_TimeStamp", new Date().getTime());
putDMR.getDataMap().putAll(dataMap);
PutDataRequest request = putDMR.asPutDataRequest();
Wearable.DataApi.putDataItem(googleApiClient,request);
}
}
}
}
这可行,但可穿戴服务 onDataChanged 从未调用过
穿着服务
public class WearableService extends WearableListenerService {
@Override
public void onDataChanged(DataEventBuffer dataEvents) {
super.onDataChanged(dataEvents);
DataMap dataMap;
try {
for (DataEvent event : dataEvents) {
Log.d(TAG, "in for DataEvent event : dataEvents");
if (event.getType() == DataEvent.TYPE_CHANGED) {
String path = event.getDataItem().getUri().getPath();
if(path.equals("/DataService_Path")) {
// change list
}
}
}
我卡在这里,提前谢谢你的帮助
【问题讨论】: