将服务绑定到 an与android.app.Activity
将其绑定到android.app.Application
. 我想将服务绑定到一个,Application
因为我想在应用程序中保留一些全局状态/数据,而不是在我的所有活动中复制它。
谢谢。
将服务绑定到 an与android.app.Activity
将其绑定到android.app.Application
. 我想将服务绑定到一个,Application
因为我想在应用程序中保留一些全局状态/数据,而不是在我的所有活动中复制它。
谢谢。
不,没有根本区别。
也就是说,子类化 android.app.Application 是存储全局/状态数据的好地方。只有一个实例,所有从 Context 派生的东西都可以访问它。
如果您不小心,我也确信将服务绑定到应用程序会导致一些奇怪的生命周期。我的意思是,即使您的应用程序不在视线范围内并且没有活动活动,您的应用程序仍然可以存在,因为您的服务仍然存在。您的服务仍然存在,因为您的应用程序仍然存在。您必须根据除 onDestroy 之外的某些事件手动关闭服务。
@Jere.Jones 的回答不是 100% 正确的。每个进程有一个应用程序类实例。因此,如果您在单独的进程中运行您的服务,例如
<service
android:name=".engine.NetworkService"
android:exported="false"
android:process=":xxxService" />
您有两个单独的 Appliaction 实例,这意味着如果您需要“保持一个状态”,您必须确保它不是进程交叉,或者您必须使用 IPC 来同步这些状态。