0

アプリの2番目のアクティビティのoncreateメソッド内でインターネットから画像をダウンロードする必要があります。メインスレッドでインターネットにアクセスすると、3.x以降のバージョンでandroid.os.NetworkOnMainThreadExceptionが発生することを知っています。2番目のアクティビティでバックグラウンドスレッドに画像をダウンロードする代わりに、バックグラウンドスレッドからそのアクティビティを開始できますか?つまり、AsyncTaskクラスのdoInbackground()メソッド内で以下の行を使用できますか?

 startActivity(new Intent(FirstActivity.this, SecondActivity.class)); 

3.xで動作しますか?または同じ例外が発生しますか?

3.xデバイスを持っていません。ごめん。

4

3 に答える 3

1

いいえ、タスクのメソッドで使用できonPostExecuteます..

protected void onPostExecute() {
   startActivity(new Intent(FirstActivity.this, SecondActivity.class)); 
}
于 2012-11-07T11:09:16.773 に答える
1

できることは、2 番目のアクティビティを通常どおり開始し、2 番目のアクティビティの onCreate() メソッドで、doInBackground で画像をダウンロードする AsyncTask を開始し、onPostExecute メソッドで画像を表示することです。

于 2012-11-07T11:13:34.470 に答える
0

アクティビティを表示する前に画像をダウンロードする必要がありますか? そうでない場合、特に画像の表示と操作以外にアクティビティで行うことがある場合は、バックグラウンドで画像をロードしAsyncTask、プレースホルダー画像またはスピナーなどを表示します。

于 2012-11-07T11:11:32.370 に答える