在整个 android 应用程序生命周期中只有一个数据库连接的最佳方法是什么?

What is the best way to have only single database connection throughout whole android app life?

我是 android 的新手,我有一些新手问题要问大家。我有一个交互式应用程序,在我有 "auto fill" 的一项活动中,在每次文本更改时,我都会从数据库加载一些 JSON(PHP 和 MYSQL 连接)并将其显示在列表视图中。现在,为了让它更快,我想当用户打开应用程序时我需要一个连接,并一直打开它直到他关闭,因为直觉上,如果每次他输入一个字符时我连接和断开与数据库的连接,它就可以了慢,即使在本地主机。我想过使用单例,但我读到过使用静态不是最好的选择,还有其他方法(不幸的是没有解释)。所以我该怎么做?我还应该在我的单个连接点中包含缓冲区和流吗?任何帮助表示赞赏。这是我的一些连接代码..

 HttpURLConnection connection = (HttpURLConnection) qurl.openConnection();
                connection.setRequestMethod("POST");
                connection.setDoInput(true);
                connection.setDoOutput(true);
                OutputStream OS = connection.getOutputStream();
                BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(OS,"UTF-8"));

没有办法,不是你怎么做的。您正在为每个请求建立单独的 HTTP 连接。除非您的网络服务器只为所有请求维护一个数据库连接实例,否则它将为每个请求创建一个新实例(这也意味着您的网站只有一个服务器 - 换句话说,对于任何非平凡的应用程序都不是这样) .

我的建议是重新设计您的功能,这样您就不会为每个字符发出 HTTP 请求。这意味着要么删除自动填充,要么在每个请求中发送更多数据并在客户端进行处理以过滤掉可能性。或者接受自动填充响应会很慢并且可能会在 return.

时过时