1

Android アプリケーションの実行速度が非常に遅く、大幅に遅れています。サーバーに PHP API があり、アプリケーションは HTTP 経由でデータを要求します。

ただし、問題は、結果が表示されるまで数秒待つ必要がある場合があることです。onCreate (XML の解析、コントロールの追加) のメイン スレッドですべての計算を行い、AsyncTask で HTTP サーバーからデータをダウンロードします。

プログラムを最適化して高速化するにはどうすればよいですか? 最初にアクティビティをロードしてから、バックグラウンドでデータをダウンロードして解析する必要があります。それはどのように可能ですか?新参者でごめんなさい。

4

2 に答える 2

0

AsyncTaskのdoInBackground()メソッドで、データ解析を追加し、データ オブジェクトを作成してからonPostExecute、UI 要素を更新します。

そのようなことをする理由は、アプリケーションが常に応答し、フリーズしないように UI スレッドで小さなジョブを作成するためです。

ビューをデフォルトの状態にし、その上に進行状況を追加して、アクティビティが現在ロード中であることを示すことができます。たとえば、空ListViewまたはButton選択できない a を作成できます。解析が完了したら、アダプターをリストに設定し、ボタンを再び選択可能に戻す必要があります。

これらはすべて、ユーザーが待機中にできるようにしたいことに従って実装できます。

于 2012-07-20T12:24:21.897 に答える
0

遅れるとはどういう意味ですか? この問題について詳しく教えてください。

OnCreate から XML の解析を削除し、AsysnTask に移動するという 1 つの提案。これは、表示されるアクティビティに影響を与える UI メイン スレッドで時間のかかる操作を行っているためです。

HTTP 関連の操作を実行するスレッドを作成し、同じスレッドで応答を解析し、解析操作の実行中にダイアログを表示します。

解析が完了したらダイアログを閉じ、表示したいアクティビティを表示します。

于 2012-07-20T12:22:29.167 に答える