我是android的新手,我有一些新手问题要问大家。我有一个互动的应用程序,并在一个活动我有"自动填充",在每一个文本的变化我加载一些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连接。除非你的web服务器只为所有请求维护一个数据库连接实例,否则它会为每个请求创建一个新的数据库连接实例(这也意味着你的网站只有一个服务器——换句话说,对于任何重要的应用程序都不是这样)。
我的建议是重新设计你的功能,这样你就不会对每个字符发出HTTP请求。这意味着要么删除自动填充,要么为每个请求发送更多数据,并在客户端进行处理以过滤掉可能性。或者接受自动填充响应将会很慢,并且在返回时可能已经过时。