2011-02-10 39 views
0

我在我的应用程序中有两个选项卡,一个抓住我的联系人并对他们的邮政编码进行地理编码,另一个选项卡将他们绘制在地图上。什么时候应该(可能)更长的任务发生?

地理编码过程可能非常耗时。处理这种长度过程的最佳做法是什么?

当应用程序启动并执行所有地理编码时,我应该有一个加载栏吗?还是应该强制用户单击按钮来执行地理编码?

回答

1

您应该将任何需要超过200毫秒的操作移动到单独的线程上,以免应用程序锁定,然后从该线程更新指示符以显示用户进度。

您需要了解AsyncTask类,它对编写响应式Android应用程序非常重要。

http://developer.android.com/reference/android/os/AsyncTask.html

这是一个非常简单的包装比,使线程容易。请记住在不再需要时停止线程,例如在onPause()中。

我倾向于将AsyncTask子类放入它们自己的类文件中(而不是作为内部类)并将它们作为构造函数参数传递给活动上下文,因此AsyncTask线程总是可以轻松访问活动来更新用户界面(但不是来自doInBackground)。

的AsyncTask的一些限制

http://foo.jasonhudgins.com/2010/05/limitations-of-asynctask.html

相关问题