对于后台下载我应该使用服务吗?

时间:2014-06-03 07:51:36

标签: android background download android-activity android-service

我正在开发我的第一个Android应用程序,我创建了一个类(而不是Activity),它下载了一个JSON文件,并在每次启动应用程序时将内容写入SQLite数据库。 然后,我在主活动类中使用此类的实例。 如果下载需要几秒钟,我的应用程序的主页会挂在空白屏幕上。

您认为我应该使用服务而不是类来处理数据库的下载和编写吗? 这可能是个好主意吗?如果可以,有什么好处?

3 个答案:

答案 0 :(得分:2)

如果您要写入数据库,我建议您使用IntentService

意图服务在其自己的线程中运行。

下载完成后,您可以使用LocalBroadcastManager通知活动。 它也适用于ContentProviderLoaders

答案 1 :(得分:2)

我还想在后台下载图片列表,因此我将ServiceSharedPreferences一起使用,我也使用了AQuery Service。{{{} 1}}是我的Java类,它检查Internet连接是否可用。这个对我有用。我希望它会给你一些帮助。

ConnectionDetector

答案 2 :(得分:0)

您可能想要使用AsyncTask。 这将在后台线程中完成工作,因此如果需要很长时间,您的屏幕就不会挂起。 当工作正在进行时,您可以显示ProgressDialog(可选)以通知用户。您还可以向该ProgressDialog添加一个按钮,以便在需要时取消该任务。

请参阅:http://developer.android.com/intl/es/reference/android/os/AsyncTask.html

在这种情况下,我更喜欢AsyncTask而不是服务,所以看起来更容易和更简单。

祝你好运=)