在服务中执行数据库任务

时间:2015-05-18 19:22:16

标签: android performance android-intent android-service

我将开发一个即使UI不存在也应该有服务运行的应用程序。所以我想我应该在服务或UI中执行每个数据库任务,并且服务应该一起执行它们吗?

我知道可以使用数据库以便UI和服务都可以使用,但我想知道哪一个是合适的并且CPU使用率较低。哪个更好:UI和服务之间的共享数据库,或者将数据从UI传递到服务以执行服务中的所有任务?

1 个答案:

答案 0 :(得分:1)

要记住性能最重要的一点是从后台线程进行潜在的昂贵的数据库调用。简单地从服务中调用它并不意味着它将在后台执行。您也可以从UI执行数据库调用,但将它们委托给AsyncTask或其他一些后台线程。

从服务中查询数据库取决于您是否希望在一段时间内执行此操作。如果它应该在用户退出您的应用程序很久之后发生,那么是 - 您应该使用服务。

如果按CPU使用率,您的意思是在一段时间内在后台进行DB调用时,您希望节省电池电量,我建议您查看JobScheduler或AlarmManager。