2

我想知道 Android 服务和启动它的活动之间的关系是什么(在这种情况下,通过 StartService() 方法发生)?

服务只是在活动所属的同一进程中运行的另一个线程,还是拥有自己的?

我问的原因是 b/c 我正在使用一个 SQLite 数据库,该数据库将从一个活动和它启动的服务中访问,因此需要确定在它们之间同步数据库访问的正确方法(利用SQLite 的内置多线程支持,或实现一些自主开发的进程间 snycronization 方法)。

注意:我不是在问如何同步访问,我是想弄清楚我从两个单独的进程或单独的线程访问数据库的天气,这将决定我如何去做。

注意:我使用 Mono.Data.Sqlite 在 .net/mono 中编写,而不是在原始 Android/Java 中编写。

欢迎和赞赏任何见解,谢谢。

4

1 回答 1

3

android 开发者网站不包含您的答案吗?它详细介绍了Serviceand Activity

注意:服务在其宿主进程的主线程中运行——该服务不会创建自己的线程,也不会在单独的进程中运行(除非您另外指定)。这意味着,如果您的服务要执行任何 CPU 密集型工作或阻塞操作(例如 MP3 播放或网络),您应该在服务中创建一个新线程来完成这项工作。通过使用单独的线程,您将降低应用程序无响应 (ANR) 错误的风险,并且应用程序的主线程可以保持专用于用户与您的活动的交互。

于 2012-07-12T16:24:13.060 回答