- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在制作一个穿戴应用程序,它在应用程序主屏幕启动时从数据库(位于手持设备上)获取数据。因此,当主页事件启动时,它使用 Wearable.MessageApi.sendMessage 函数从 Android Wear 向手持设备发送一条消息。在手持设备上,我有 WearableListenerService,它在 onMessageReceived 函数中接收此消息并读取数据库。读取数据库后,向穿戴设备发送 putDatamapRequest。
现在在磨损方面,我有另一个 WearableListenerService。在此服务中,永远不会调用 onDataChanged() 函数。它有时会运行,到目前为止它运行了 2-3 次,否则它不会运行。这是非常随机的。此外,一旦在 Wear 端接收到数据,我就会设置一个静态 Arraylist,用于在 Activity 中显示数据。但由于 onDataChanged 函数并不总是被调用,因此它给出空数组列表。
这是我在其中声明服务的 Wear 应用的 AndroidManifest 文件:
<service
android:name="com.example.deals.DataListenerService"
android:enabled="true"
android:exported="true" >
<intent-filter>
<action android:name="com.google.android.gms.wearable.BIND_LISTENER" />
</intent-filter>
</service>
这是我将消息从穿戴设备发送到手持设备的代码:
mGoogleApiClient = new GoogleApiClient.Builder(this).addConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() {
@Override
public void onConnected(Bundle bundle) {
Wearable.NodeApi.getConnectedNodes(mGoogleApiClient).setResultCallback(new ResultCallback<NodeApi.GetConnectedNodesResult>() {
@Override
public void onResult(NodeApi.GetConnectedNodesResult getConnectedNodesResult) {
if(!getConnectedNodesResult.getNodes().isEmpty())
{
node = getConnectedNodesResult.getNodes().get(0);
System.out.println("Connected: "+ node.getId());
Wearable.MessageApi.sendMessage(mGoogleApiClient, node.getId(), FETCH_ALL_DEALS, null).setResultCallback(new ResultCallback<MessageApi.SendMessageResult>() {
@Override
public void onResult(MessageApi.SendMessageResult sendMessageResult) {
if (!sendMessageResult.getStatus().isSuccess()) {
Log.e("Wear:", "ERROR: failed to send Message: " + sendMessageResult.getStatus());
}
else
System.out.println("success");
}
});
}
else
System.out.println("Wear not connected to Phone");
}
});
}
@Override
public void onConnectionSuspended(int i) {
}
})
.addOnConnectionFailedListener(new GoogleApiClient.OnConnectionFailedListener() {
@Override
public void onConnectionFailed(ConnectionResult result) {
Log.v("Phone to wear connection failed", "onConnectionFailed: " + result);
}
})
.addApi(Wearable.API)
.build();
mGoogleApiClient.connect();
这是我在手持设备上的 onMessageReceive 代码:
public void onMessageReceived(MessageEvent messageEvent) {
System.out.println("Message Received on Phone on launch of wear homepage");
if(messageEvent.getPath().equals(FETCH_ALL_DEALS)) {
sendSavedDeals(); //fetch from db and make a datamap object using PutDataRequest
System.out.println("Message Received on Phone on launch of wear homepage");
}
else {
System.out.println("Unable to recognise action for "+messageEvent.getPath());
}
}
现在在我的磨损方面,我有一个 WearableListenerService 但它的 onDataChanged 方法永远不会被调用。你能帮我一下吗?
最佳答案
onDataChanged()
仅在数据确实发生变化时调用。如果您多次将相同的数据放入DataApi中,该方法只会被调用一次,直到您写入不同的数据。
要在穿戴端触发操作,即使数据没有更改,也需要在将数据放入 DataApi 后发送消息。
关于wear-os - WearableDataListener 服务不调用 onDataChanged 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25129020/
我正在尝试使用 Firebase 创建餐厅和酒吧的评级系统。到目前为止,我能够阅读和书写个人评分。我遇到的问题是,为了计算特定餐厅的平均评级,我需要获取存储的评级数量和存储的所有评级的总值(value
我正在为 Android Wear 构建一个表盘。表盘偶尔会向掌上电脑询问信息,这些信息将用于更新表盘。不幸的是,onDataChanged 和 onMessageReceived 只在表盘第一次加载
我使用这段代码来检查我的数据库中是否有特定数据: mDatabase.child("TempTransaction").child(MainActivity.User.getID()).addVa
这是我的代码: public ArrayList getArray() { final FirebaseDatabase database = FirebaseDatabase.getInst
我正在尝试数据项 APi,这是我的代码 mGoogleApiClient = new GoogleApiClient.Builder(this) .addConnectionC
出于某种原因,当我在 fragment 中调用 getTitle() 时,它总是返回 null。似乎根本没有添加 ValueEventListener。 当我在监听器内调试或打印 title 的值时,
这个问题已经有答案了: Setting variable inside onDataChange in Firebase (singleValue Listener) (3 个回答) 已关闭 5 年前
这是我的ArrayAdapter: public class SackViewAdapter extends ArrayAdapter { private ArrayList postInfo
我正在尝试从用户帐户读取数据列表,如下所示: 但是 onDataChange 监听器没有被调用。 我想获取“checked”和“desc”的值;但是,当我添加如下所示的 ListenForSingle
尽管接收快照并在 onDataChange() 函数中将数据添加到 ArrayList 中,但该函数没有返回任何数据,但最终它返回 大小为 0 的 ArrayList。 List feed_data(
我正在我的 Android 应用中实现 Firebase。 我有两种方法可以执行一些同步操作。方法A:查询事物列表。方法B:执行写入和读取。 方法一: final Firebase ref = sFi
我正在尝试从我的 Firebase 数据库中获取数据我有两个 fragment ,一个用于注册,另一个用于登录我在将数据插入 Firebase 时没有问题,但不知何故我无法从中返回数据 这些是我登录
我正在努力使用 onDataChange 访问从数据库返回的信息。我知道这是由于其异步性质,但我需要将这些值存储在某处以便在代码完成后访问。 我在 Firebase 数据库中存储了一个 user 子级
我有一个用于测试 Firebase 的基本程序。我有 2 个按钮:第一个是写入 Firebase 数据库“a”,第二个是写入“b”,我正在使用服务检查它们: myRef.addValueEventLi
如果我的数据库仍在加载,则显示加载对话框。我想让我的聊天应用程序正常工作。我发现我的问题将通过覆盖 FirebaseRecyclerAdapter 中的 onDataChanged() 来解决,如下面
这个问题在这里已经有了答案: getContactsFromFirebase() method return an empty list (1 个回答) 关闭 4 年前。 我有一个 boolean
我想问问是否有人可以为我解决这个问题..因为我一直在搜索并尝试自己修复它但是..没有.. 这是我的 logcat 错误: E/AndroidRuntime: FATAL EXCEPTION: main
我有一个应用程序,我在其中使用 firebase 来存储我的数据。 我的数据在使用 OnDataChange 方法的 fragment 中检索,我在单独的 Activity 中将数据添加到我的 fir
关于 Firebase ValueEventListener,我遇到了一个非常奇怪的情况。 当手机连接到互联网时,它工作正常。但是当它离线时,它不会调用 onDataChange。 这段代码即使在离线
我正在尝试从 firebase 数据库检索数据,当您进入应用程序并且从不监听 OnDataChange 时调用此方法。如果我将新图像上传到 firebase,则会调用 OnDataChange 并显示
我是一名优秀的程序员,十分优秀!