Android 安卓:在哪里存储我的数据库:服务还是活动?

Android 安卓:在哪里存储我的数据库:服务还是活动?,android,database,service,aidl,Android,Database,Service,Aidl,我的程序由远程服务人员组成,他们在后台每1小时从互联网下载一次数据并更新数据库。然后,服务将提醒用户预定义的数据 活动用于设置警报设置和一些其他参数。服务应该能够在没有活动的情况下独立工作 我想知道把sql数据库放在哪里 假设我在活动中创建了它,我可以从服务访问它吗?? 然后我应该构建一个AIDL连接,还是直接读取数据库就可以访问数据库(即使活动不起作用) 如蒙指教,不胜感激 Ps:我正在寻找一些简单的东西,因为我还是android的初学者;) 如果您的服务与“活动”处于同一流程中,则无论您在何

我的程序由远程服务人员组成,他们在后台每1小时从互联网下载一次数据并更新数据库。然后,服务将提醒用户预定义的数据

活动用于设置警报设置
和一些其他参数。服务应该能够在没有活动的情况下独立工作

我想知道把sql数据库放在哪里

假设我在活动中创建了它,我可以从服务访问它吗?? 然后我应该构建一个AIDL连接,还是直接读取数据库就可以访问数据库(即使活动不起作用)

如蒙指教,不胜感激


Ps:我正在寻找一些简单的东西,因为我还是android的初学者;)

如果您的服务与“活动”处于同一流程中,则无论您在何处创建它,也不管您希望在何处访问它。只有当服务在单独的进程中运行时,才需要AIDL。

如@black crow所述,如果在同一进程中有活动和服务,则在何处创建数据库并不重要。如果它们是独立的进程,那么在我看来,最好在服务中创建数据库,并创建从活动访问数据库数据的方法(例如getAllData)。因此,与数据库的所有交互都将在服务中进行。
如果您的活动和服务处于不同的流程中,您还可以创建ContentProvider,因此,您的活动和服务将在逻辑上进行划分(活动将仅从ContentProvider读取数据,服务将数据推送到那里)。在我看来,这种方法将适合你的所有需要

您的服务是否需要从活动中获取一些信息?还是要访问活动中的数据库?我的服务将在手机启动时启动。我将只使用活动来设置服务并显示一些图(带有数据库中的一些数据)。我不确定有多少个流程。但我的服务和活动是在同一个项目(同一个应用程序)上定义的。据我所知,你在这里只谈论一个流程。