0

私のアプリケーションは、大量のファイルを res.raw から SD カード上のファイルにコピーします。これには数十秒かかる場合があります。この間、ユーザーには黒い画面が表示されます。一部のユーザーは、アプリケーションが失敗したと考えています。「スタンバイ」メッセージを表示したいと思います。

トーストしてみました。レイアウトにメッセージを入れて setContentView(R.layout.main) を試しました。どちらも期待される結果を与えません。ロード プロセス中、画面は黒いままです。

4

1 に答える 1

2

これは、UI スレッドでこの重い処理を実行すると、ユーザーとのやり取りがブロックされるためです。この重い負荷を別のスレッドで実行する必要があります。Asynctask をお勧めします: http://developer.android.com/reference/android/os/AsyncTask.html

  1. onPreExecute(): スタンバイ メッセージを表示します。
  2. doInBackground(Params...): 高負荷を実行します。
  3. onPostExceute(Result r): 重い負荷を処理したので、スタンバイ メッセージを削除します。
于 2012-07-10T07:48:03.113 に答える