我正在开发我的第一个Android应用程序,我创建了一个类(而不是Activity),它下载了一个JSON文件,并在每次启动应用程序时将内容写入SQLite数据库。 然后,我在主活动类中使用此类的实例。 如果下载需要几秒钟,我的应用程序的主页会挂在空白屏幕上。
您认为我应该使用服务而不是类来处理数据库的下载和编写吗? 这可能是个好主意吗?如果可以,有什么好处?
答案 0 :(得分:2)
如果您要写入数据库,我建议您使用IntentService
意图服务在其自己的线程中运行。
下载完成后,您可以使用LocalBroadcastManager通知活动。 它也适用于ContentProvider和Loaders。
答案 1 :(得分:2)
我还想在后台下载图片列表,因此我将Service与SharedPreferences
一起使用,我也使用了AQuery
Service
。{{{} 1}}是我的Java类,它检查Internet连接是否可用。这个对我有用。我希望它会给你一些帮助。
ConnectionDetector
答案 2 :(得分:0)
您可能想要使用AsyncTask。 这将在后台线程中完成工作,因此如果需要很长时间,您的屏幕就不会挂起。 当工作正在进行时,您可以显示ProgressDialog(可选)以通知用户。您还可以向该ProgressDialog添加一个按钮,以便在需要时取消该任务。
请参阅:http://developer.android.com/intl/es/reference/android/os/AsyncTask.html
在这种情况下,我更喜欢AsyncTask而不是服务,所以看起来更容易和更简单。
祝你好运=)