该线程已过时,但当前接受的答案是错误的并误导了一些人,所以我们开始吧。
Android 中的服务可能与您的应用运行在同一进程上,也可能运行在不同的进程上。
如果这是您自己的应用程序定义供内部使用的服务,则它可能在同一进程上运行。只是不要process 在 Manifest 上设置任何属性。在这种情况下,您的服务将在主线程或某些后台线程上运行其任务,并将与应用程序的其余部分共享相同的单例实例。
如果这是在单独的进程或单独的应用程序上运行的真正的远程服务,那么您想要实现的目标就会困难得多。每个进程都有自己的单例实例,并且它们彼此之间没有任何关系。一旦您意识到不同的进程甚至可能没有运行相同版本的代码,这就完全有道理了。
如果您确实希望跨进程拥有一个通用对象(提示:您几乎肯定不会),则需要为其数据创建一个共享内存空间,并实现一些同步方法。我确信大学里有关于这个主题的完整讲座。
| 归档时间: |
|
| 查看次数: |
3706 次 |
| 最近记录: |