我有一个应用程序使用ListActivity
为用户提供一系列操作。当他们点击一个我使用Intent
发起一个单独的活动。使用带有ListActivity的AsyncTask显示加载屏幕
我的问题是,应用程序执行的操作需要大约20秒才能完成,并且由于我不希望用户收到那个令人讨厌的ANR对话框,我试图使用AsyncTask
向他们展示加载屏幕与此同时。我尝试使用setContentView(R.layout.loading);
,onPreExecute()
,但它引发了一个NullPointerException,据我所知,这是由于loading.xml
不是“ListView的ID为android.R.id.list
”的事实。
那么我现在可以做什么?我怎样才能显示加载屏幕?有没有办法解决这个令人烦恼的问题?任何帮助将不胜感激。谢谢!
非常感谢您的详细解释。该列表在我启动应用程序后立即加载。一旦用户从列表中选择一个选项,就会发生长时间的过程。我将很快研究对话框的方法。在尝试这个之前,我想知道一件事情...在长时间后台处理完成后不会onPostExecute运行吗? – Drider 2012-03-16 00:02:55
漫长的过程是否需要您向用户显示任何内容?完成后,他们会回到列表中,还是去其他地方? – 2012-03-16 13:55:22
我的情况稍微有所改变......我现在可以很容易地显示加载屏幕,但是我有点盲目,现在意识到大部分的加工都是在我的新活动中完成的。所以我为长操作实现了AsyncTask,但我的活动仍然拒绝显示任何类型的接口,直到完成完成,即使'setContentView'是与'super.onCreate()'一起使用的第一行。我也尝试在onPreExecute()上使用setContentView,但它没有区别,我不明白为什么。 – Drider 2012-03-16 17:39:16