18

将服务绑定到 anandroid.app.Activity将其绑定到android.app.Application. 我想将服务绑定到一个,Application因为我想在应用程序中保留一些全局状态/数据,而不是在我的所有活动中复制它

谢谢。

4

2 回答 2

15

不,没有根本区别。

也就是说,子类化 android.app.Application 是存储全局/状态数据的好地方只有一个实例,所有从 Context 派生的东西都可以访问它。

如果您不小心,我也确信将服务绑定到应用程序会导致一些奇怪的生命周期。我的意思是,即使您的应用程序不在视线范围内并且没有活动活动,您的应用程序仍然可以存在,因为您的服务仍然存在。您的服务仍然存在,因为您的应用程序仍然存在。您必须根据除 onDestroy 之外的某些事件手动关闭服务。

于 2010-07-01T04:13:59.873 回答
4

@Jere.Jones 的回答不是 100% 正确的。每个进程有一个应用程序类实例。因此,如果您在单独的进程中运行您的服务,例如

 <service
        android:name=".engine.NetworkService"
        android:exported="false"
        android:process=":xxxService" />

您有两个单独的 Appliaction 实例,这意味着如果您需要“保持一个状态”,您必须确保它不是进程交叉,或者您必须使用 IPC 来同步这些状态。

于 2014-02-27T12:43:20.873 回答