我正在开发一个 Android 应用程序,用于创建一个特定用户组之间的交流论坛。我使用 PHP Laravel 作为我的后端,并通过 API 调用进行交流。
我使用 REST API 调用将数据发布到我的服务器并接收发布的对话并使用 recyclerview 对其进行扩充。
一切正常,但我想要的是在使用新数据更新数据库时动态更新 recyclerview 数据,以便用户无需刷新页面即可查看新数据。
基本上我不想每次都调用 API 来膨胀 recyclerview。
在浏览时,我得到一些使用 Socket 的提示,因为我们可以保持连接打开,这与在响应后终止的 HTTP REST API 调用不同。
但我不知道如何将 Socket 与 REST API 调用结合起来。
最佳答案
我通过使用 Firebase 而不是 Socket 得到了我想要的东西。
我遵循了这些步骤。
- 我将数据从 Laravel 后端发布到 Firebase 数据库,就像 How to post data to firebase using PHP? 中的答案一样 .
我使用这组代码在我的 android 应用程序中获取了该数据
progressDialog.setMessage("Loading..."); showDialog(); databaseReference.child("root_id").addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { forumlist.clear(); int l = (int) dataSnapshot.child(msgid).getChildrenCount(); for(DataSnapshot uniqueKeySnapshot : dataSnapshot.child(msgid).getChildren()){ ForumSubData subData = uniqueKeySnapshot.getValue(ForumSubData.class); forumlist.add(subData); } recyclerView.setAdapter(mAdapter); mAdapter.notifyDataSetChanged(); } hideDialog(); } @Override public void onCancelled(DatabaseError databaseError) { hideDialog(); } });
关于android - 如何在 android 中使用套接字从 REST Api 获取 JSON 响应以动态膨胀 recyclerview?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50136287/