android和php之间的多重连接

时间:2019-05-22 14:56:48

标签: php android

我在数据库中有一个动态表,每当有一个新插入时,我需要做一些计算并将数据发送到android,所以我知道如何在android和php之间建立连接,但是我该如何使android对php文件进行多次检查,以便它可以显示数据?

 private void loadProducts() {

    StringRequest stringRequest = new StringRequest(Request.Method.GET, URL_PRODUCTS,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    try {
                        // converting the string to json array object
                        JSONArray products = new JSONArray(response);

                        // traversing through all the object
                        for (int i = 0; i < products.length(); i++) {

                            // getting product object from json array
      JSONObject productObject = products.getJSONObject(i);
               int Temp_dt = productObject.getInt("Temp_dt");
                 int BusNumber = productObject.getInt("BusNumber");
                    Product product = new Product(Temp_dt, BusNumber);

                            // adding the product to product list
                            productList.add(product);
                        }

      adapter = new ProductsAdapter(WaitingActivity.this, productList);
                        recyclerView.setAdapter(adapter);
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) { Toast.makeText(WaitingActivity.this, error.getMessage(), Toast.LENGTH_SHORT).show();
                }
            });

我希望在有一个新插入时显示数据,但它仅显示数据表中存在的内容,并且如果有新插入物,我需要再次输入该活动,以便它可以显示我想要的内容。

2 个答案:

答案 0 :(得分:1)

如果没有客户端的查询,就无法使服务器发送数据。您必须每N秒检查一次android上的更改。我认为您不想每次都发送完整的表,因此可以在数据库中创建字段,其中包含表的最后更新时间。它可以被触发器追赶。首次下载表格时,您可以在Android上节省该时间。现在,您每隔N秒就会从服务器获取一次此时间,如果它与保存的时间不同-请重新加载表。

或者使用套接字,但是PHP不支持它,您需要另一个服务器应用程序

答案 1 :(得分:0)

您要寻找的基本上是MySQL的android(或客户端)实时更新。 我想您有这些选择。

保持每n秒检查一次变化

我认为这不是一个好的解决方案。因为您无用地检查数据更改并在固定间隔内进行网络操作。

timer.scheduleAtFixedRate(yourtask,delay,interval)

使用推送通知

这更好,因为只要您的数据有任何更改,就将推送通知发送到客户端以进行相应更改。

您可以从此处查看完整的通知教程: Android NotificationTutorial

使用Firebase实时数据库

最简单的解决方案是使用Firebase实时数据库或FireStore数据库。如果您没有任何问题可以迁移到NoSQL数据库,那么这可能是您的最佳解决方案。