我想为Android设计一个服务,它可以随时在后台运行,并且可以触发事件,然后可以由手机上运行的应用程序处理(比如任何应用程序都可以监听 OnFling 事件)。这如何在 Android 上实现?
我已阅读http://www.mikenimer.com/?p=671 和 http://android.kgmoney.net/2010/05/08/creating-a-simple-android-service-for-background-processing /
有人可以指导我吗?
我想为Android设计一个服务,它可以随时在后台运行,并且可以触发事件,然后可以由手机上运行的应用程序处理(比如任何应用程序都可以监听 OnFling 事件)。这如何在 Android 上实现?
我已阅读http://www.mikenimer.com/?p=671 和 http://android.kgmoney.net/2010/05/08/creating-a-simple-android-service-for-background-processing /
有人可以指导我吗?
您不可能拥有“可以始终在后台运行”的服务。用户可以并且将在用户想要时摆脱您的服务,而 Android 本身可以并且将在其算法决定时摆脱您的服务。虽然您可以使用诸如startForeground()
减慢 Android 摆脱您的服务之类的东西,但它不会永远运行,并且用户可以自由地通过设置应用程序或任意数量的第三方任务管理器将您从轨道上删除。
此外,对于绝大多数应用程序来说,拥有一个试图永远运行的服务是一种低劣的设计。用户放弃此类服务是有原因的——它们占用的 RAM 可以专门用于用户目前更看重的应用程序。写得不好的服务也会消耗更多的 CPU、电池、带宽等。由于您拒绝实际解释您要完成的工作,我既不能告诉您用户是否会认为您的服务是合理的,也不能建议替代实现来避免“永久服务”。
Intents
服务当然可以发送其他应用程序可以选择的广播。这是否符合您的一个需求(“我触发了一个 XYZ 事件,并且任何应用程序都可以侦听此事件并执行某些任务”),我不能说。