0

我需要在我的应用程序的第二个活动的 oncreate 方法中从互联网下载图像。我知道在主线程上访问互联网会导致 android.os.NetworkOnMainThreadException 在 3.x 和更高版本上。我可以从后台线程启动该活动,而不是在第二个活动的后台线程中下载图像吗?我的意思是,我可以在 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

您可以做的是正常启动第二个活动,然后在您的第二个活动的 onCreate() 方法中,启动一个 AsyncTask,该任务在 doInBackground 中下载图像,然后在 onPostExecute 方法中显示图像。

于 2012-11-07T11:13:34.470 回答
0

在显示您的活动之前,您绝对需要下载图像吗?如果没有,特别是如果活动中除了查看和操作图像之外还有其他事情要做,请在背景中使用 加载图像AsyncTask,并显示占位符图像或微调器等。

于 2012-11-07T11:11:32.370 回答