1

私のメイン アクティビティは、新しいアクティビティを開始し、ファイル パスの文字列配列を提供します。このような:

Intent i = new Intent(getBaseContext(), upScreen.class);
i.putExtra("paths", selPhotos);
startActivity(i);

新しいアクティビティでは、プログレス バーを更新しながら、一度に 1 つのファイルをソケット経由でサーバーに送信します。つまり、新しいアクティビティの UI は、ファイルが送信された後にのみロードされます。そのため、進行状況バーが完全にしか表示されません。トランザクションを開始する前に、UI が完全に初期化されるまで待つにはどうすればよいですか?

私はソケット コマンドを非同期的に実行します。ソケット コマンドを実行するスレッドを起動するコードを onWindowFocusChanged の下に配置しようとしましたが、成功しませんでした。

助けてください!

4

1 に答える 1

0

アップロードが UI スレッドをブロックしているようです。AsyncTaskアップロードを行うには、または他の形式の新しいスレッドを使用する必要がありますが、UI スレッドで行われている作業は、Activityの GUI を表示して進行状況バーを更新することだけです。

AsyncTaskアップローダの要件に簡単に拡張できるダウンローダの例を使用するためのドキュメント: http://developer.android.com/reference/android/os/AsyncTask.html

于 2012-06-17T04:30:25.243 に答える