目前,我的应用程序以菜单开头。单击一个菜单项后,它将启动一个活动,该活动从在线API中获取内容。
我遇到的问题是,一旦单击菜单项,应用程序将等待,直到http请求和响应完成才显示活动。
我的问题是,如何使用布局和静态视图立即显示活动。然后,一旦加载了活动,我就开始从API中获取数据?
答案 0 :(得分:3)
为什么要在兼并运行时运行!!
在onCreate()
/ onResume()
方法中使用AsyncTask
。
public void onCreate(Bundle b) {
super.onCreate(b);
setContentView(...);
AsyncTask task = new MyTask();
task.execute(/* optional params */);
}
在MyTask
的实现中,将长时间运行的代码(从http请求获取的数据)放入doInBackground()
方法。 doInBackground()
方法返回后,您可以更新View
中的onPostExecute()
。
另外,请看一下Painless Threading,因为那里有很多有用的android线程信息。
答案 1 :(得分:2)
您可以在onCreate方法期间使用AsyncTask来获取结果并异步更新您的活动。另外,我认为您可以使用单独的线程来执行相同的功能。很常见的用例。 Here's the relevant Android docs