0

親アクティビティにリストビューがあり、親画面から子アクティビティにパラメーターを渡しています。また、カスタムテーマとタイトルバーがあります。私の質問は、親リストビューから子ビュー画面に移動すると、時間がかかりすぎて黒くなります画面がしばらく表示されます。その理由と回避方法を教えてください。

Googleで少し検索したところ、1つの理由がわかりましたが、うまくいきませんでした。

誰でも私を助けることができますか?

4

2 に答える 2

2

説明からすると、表示上の問題ではなく、処理上の問題があります。完了するのに時間がかかりすぎるルーチンを特定する必要があります。処理コードを見なければ、解決策を推奨することは困難です。

実際のデバイスでアプリを実行していますか、それともエミュレーターを使用していますか? - エミュレーターが遅いことで有名です。実際のデバイスで実行してみてください。

UI スレッドで Web サイトや Web サービスなどのオンライン リソースにアクセスしていますか? すべてのオンライン アクセスは、専用スレッドで実行する必要があります。

あなたの処理はどこで行われていますか?ListView の onClick は UI スレッドで実行されるため、余分な処理を行わないでください。これも UI スレッドで実行されるため、新しいアクティビティの onCreate メソッドには最小限の処理のみを配置します。時間のかかる処理を配置する最適な場所は、新しいアクティビティの onResume メソッド (これは引き続き UI スレッドで実行されます) であり、理想的には処理を別のスレッドに渡します。

ローカルの SQLite データベースにアクセスしていますか? その場合、SQL ステートメントやデータベースのパフォーマンスが最適化されていない可能性があります。ローカル データベースを使用していて、強力な SQL プログラマーでない場合は、誰かにステートメントを見てもらうか、ここに投稿してもらいます。

アプリは、大きな配列やメモリに読み込まれた画像など、大量のメモリを使用していますか? その場合は、メモリ要件を減らします。常に必要なものだけをメモリに保持してください。

これらのいずれも役に立たない場合は、ListView の onClick から別のユーザー入力の準備ができるまでの処理の詳細な説明を投稿してください。

于 2012-12-11T12:46:52.117 に答える
1

次の画面に到達したら、処理タスクをスレッド (OnCreate()) に入れて、進行状況ダイアログを表示して待機してください。

編集 -アクティビティでこのテーマを試してみて、どうなったか教えてください。

@android:style/Theme.Translucent.NoTitleBar
于 2012-12-11T09:08:50.460 に答える