Android - 减少OnCreate中的代码以避免黑屏

时间:2013-11-06 23:13:36

标签: android android-activity

我有一个活动。让我们将其称为活动A.点击此活动中的按钮可将数据发送到服务器(POST方法),并启动活动B.

由于在从活动A向服务器发送数据之前涉及一些计算,我已经实现了将数据作为异步任务发送到服务器的任务。

在Activity B中,在OnCreate方法中有一个GET请求被触发。因此,当活动B启动时,此GET请求将被触发。从服务器获取数据后,我在列表视图中加载数据。所有这些都在OnCreate方法中。我再次将此GET请求实现为异步任务。

此外,活动A中的POST方法和活动B中的GET方法是相互关联的。

我面临的问题是当我点击活动A中的按钮时,屏幕变黑并在10秒后出现(活动B)。我在活动B中实现了一个进度条,并使其显示,直到我收到服务器的响应。但这根本没有出现。我得到的只是突然出现了列表视图。

想知道为什么这会出现,因为任务是活动A和B中的异步任务

Activity B

   onCreate method
{

    display progress bar

    asynctask to fetch data

    while(data not fetched){

      // loop through until you get data            

    }

    populate list view  

}

任何人都可以让我知道我哪里出错了。这是oncreate方法中需要的最小代码。此外,由于这是一次性活动,我不想将其作为服务来实现。另外,我希望不要使用闪屏。我想要的只是显示进度条,直到我从服务器获取数据。从活动A到活动B,请帮助避免出现黑屏。

由于

1 个答案:

答案 0 :(得分:3)

  

任何人都可以让我知道我哪里出错了。

while(data not fetched){}位很可能是您遇到困难的根源。

onCreate()开始任务很好。但是,不会阻止其余onCreate() 的处理。删除while循环,并在任务的onPostExecute()句柄中处理数据准备就绪时更新UI。