2016-07-03 2 views
-6

私はアンドロイドにはかなり新しいです。皆さんのために初心者の質問があります。私はインタラクティブなアプリケーションを持っています。アクティビティの1つに「自動塗りつぶし」があり、テキストが変わるたびにDB(PHPとMYSQLの接続)からJSONを読み込んでリストビューに表示します。今すぐもっと速くするために、ユーザーがアプリを開いて閉じるまで、1つの接続が必要だと思います。文字を入力するたびに直観的にデータベースに接続して切断するので、遅く、ローカルホストでさえも。私はシングルトンを使うことを考えましたが、静的な方法を使うのが最善の策ではなく、他の方法もあります(残念ながら説明しません)。それで...私は何をすべきですか?単一の接続ポイントにバッファーとストリームを含める必要がありますか?どんな助けもありがとうございます。ここに私の接続コードのいくつかがあります..アンドロイドアプリ全体を通してデータベース接続を1つだけにする最良の方法は何ですか?

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")); 
+0

@Razgriz私は本当に私の質問が有効だと思った。 – JovanIvanoski

+0

質問をサポートするコードなしでphpとmysqlとタグ付けされたのはなぜだろうか。 –

+0

btw、解決済みとマークされていない多くの質問があり、まだ「公開」とみなされています。それらのうちのいずれかを解決してもらえますか?もしそうなら、あなたはそれらの隣にシンプルな目盛りで解決されているとマークすることができます –

答えて

0

あなたはそれをやっている方法ではありません。リクエストごとに個別のHTTP接続を作成しています。あなたのWebサーバーは、すべての要求に対してデータベース接続のインスタンスを1つだけ保持しない限り、要求ごとに新しいインスタンスを作成します(これは、あなたのWebサイトには単一のサーバーしかありません。つまり、 。

私の提案は、キャラクターごとにHTTPリクエストをしないようにあなたの機能を再設計することです。これは、自動入力を削除するか、または各リクエストでより多くのデータを送信し、クライアント側を処理して可能性を除外することを意味します。または、自動入力の返信を受け入れるのが遅く、返されるまでには時代遅れになる可能性があります。

+0

ヒントをありがとう。これは私が探していた答えです。このような場合は、2,3文字後に作業を開始するようにします。それは私が推測する少しそれを改善します。 – JovanIvanoski