親アクティビティにリストビューがあり、親画面から子アクティビティにパラメーターを渡しています。また、カスタムテーマとタイトルバーがあります。私の質問は、親リストビューから子ビュー画面に移動すると、時間がかかりすぎて黒くなります画面がしばらく表示されます。その理由と回避方法を教えてください。
Googleで少し検索したところ、1つの理由がわかりましたが、うまくいきませんでした。
誰でも私を助けることができますか?
親アクティビティにリストビューがあり、親画面から子アクティビティにパラメーターを渡しています。また、カスタムテーマとタイトルバーがあります。私の質問は、親リストビューから子ビュー画面に移動すると、時間がかかりすぎて黒くなります画面がしばらく表示されます。その理由と回避方法を教えてください。
Googleで少し検索したところ、1つの理由がわかりましたが、うまくいきませんでした。
誰でも私を助けることができますか?
説明からすると、表示上の問題ではなく、処理上の問題があります。完了するのに時間がかかりすぎるルーチンを特定する必要があります。処理コードを見なければ、解決策を推奨することは困難です。
実際のデバイスでアプリを実行していますか、それともエミュレーターを使用していますか? - エミュレーターが遅いことで有名です。実際のデバイスで実行してみてください。
UI スレッドで Web サイトや Web サービスなどのオンライン リソースにアクセスしていますか? すべてのオンライン アクセスは、専用スレッドで実行する必要があります。
あなたの処理はどこで行われていますか?ListView の onClick は UI スレッドで実行されるため、余分な処理を行わないでください。これも UI スレッドで実行されるため、新しいアクティビティの onCreate メソッドには最小限の処理のみを配置します。時間のかかる処理を配置する最適な場所は、新しいアクティビティの onResume メソッド (これは引き続き UI スレッドで実行されます) であり、理想的には処理を別のスレッドに渡します。
ローカルの SQLite データベースにアクセスしていますか? その場合、SQL ステートメントやデータベースのパフォーマンスが最適化されていない可能性があります。ローカル データベースを使用していて、強力な SQL プログラマーでない場合は、誰かにステートメントを見てもらうか、ここに投稿してもらいます。
アプリは、大きな配列やメモリに読み込まれた画像など、大量のメモリを使用していますか? その場合は、メモリ要件を減らします。常に必要なものだけをメモリに保持してください。
これらのいずれも役に立たない場合は、ListView の onClick から別のユーザー入力の準備ができるまでの処理の詳細な説明を投稿してください。
次の画面に到達したら、処理タスクをスレッド (OnCreate()) に入れて、進行状況ダイアログを表示して待機してください。
編集 -アクティビティでこのテーマを試してみて、どうなったか教えてください。
@android:style/Theme.Translucent.NoTitleBar