0

Helo、新しいアクティビティを開始するときに黒い画面を避けるにはどうすればよいですか?

私はインターネット関連の仕事をしている活動があります。

インターネット接続が遅い場合、新しいアクティビティを開始すると黒い画面になり、数秒後に表示されます。

インターネット作業はAsyncTaskによって行われます。

これを回避するには、たとえばプログレスバーを使用しますか?

+0

チェックを見てみましょう。理想的には静的な初期化のみが存在するはずです。 onStartで休んでください。画面にデータを表示するためにインターネットタスクが必要な場合は、onPreExecuteでインジケータを開始します。 –

+0

アクティビティ間にプログレスバーを表示する可能性はありますか? – ubik

+0

意味がありません。プログレスバーは、アクティビティ1またはアクティビティ2のいずれかになるビューにアタッチされます。アクティビティの切り替えにかかる時間もそれほど長くありません。遅れと黒い画面は、時間がかかり、onCreateで書かれたいくつかの操作のために来るでしょう。タイムスタンプをonCreateの最初の行として出力して、アクティビティがどれくらい速くロードされているのかを確認し、遅延がどこにあるのかを確認してください。 –

答えて

0

Androidは60 fpsでGUIを更新するはずです。 これは基本的に、16ミリ秒以上かかる可能性のある操作は、メインのGUIスレッドでは実行しないでください。

アクティビティの作成は、デフォルト値やすぐにアクセス可能なデータを使用して、すばやく行う必要があります。ネットワーク、データベース、ファイルシステムアクセスなどの「長い」操作は、ワーカースレッドまたはAsyncTaskを使用して非同期に実行する必要があります。

あなたのコードのほとんどはのonCreateである場合Docs

関連する問題