android - 使用单例与 Android 服务对话

标签 android android-service

我的 Android 应用程序运行一个无法从其他应用程序访问的服务实例。我知道该服务与应用程序的 Activity 在同一进程中运行,因为我可以从 Activity 读取和写入 Service 类上的静态变量,并且该服务可以看到更改。

通过静态变量/方法(或更恰当的单例)与服务通信比使用 Handler 或 Intent 与它通信要简单得多,这需要使所有传递的参数都可分包。看起来这两种通信方式真的是为运行在单独进程中的服务而设计的,对于进程内服务来说是不必要的开销。

看来我一定漏掉了什么大东西。如果您知道服务在您的应用程序本地,那么使用单例与服务对话有什么问题?

最佳答案

服务和 Activity 之间的通信是使用 bound service 的主要原因之一。 : 你可以建立一个 Binder类定义了您的服务和 Activity 之间的接口(interface),并在它们之间传递您想要的任何对象,而不必担心将它们打包(因为 Binder 要求两者在同一进程中)。

关于android - 使用单例与 Android 服务对话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25026248/

相关文章:

Android: AlarmManager 用来调用一个Service来通知用户

Android 在应用程序崩溃或退出时取消绑定(bind)服务

Android Activity 服务通信

android - 如果我从 Activity 中的 onCreate startService,finish() Activity 然后再次启动应用程序,会发生什么情况?

android - 将图像从 ImageView 保存到内部/外部设备存储器中

android - 不可见文本在概览中仍然可见

android - 在 Android Studio 中使用已编译的 SDK

android - android滚动时如何拉动类似于弹性类型的布局?

java - 无法解析 ondestroy 方法内的方法 'stopService(android.content.Intent)'

Android 崩溃时停止服务