我正在构建我的iOS应用的Android版本,并可以使用一些指导来了解如何实现某些功能。
该应用程序有几个职责;监控位置变化并将其添加到数据库,通过Bonjour广告和发现可用的对等方,维护与发现的对等方和服务器的连接,以及通过蓝牙LE广告和监听附近的对等方。
为了组织它们,我为每个职责创建了“经理”单例类(例如,LocationManager,BonjourManager等)。我在应用程序启动时启动它们,并在应用程序终止时停止它们。
显然,当用户没有与应用程序交互时,我不希望它们在后台运行。在iOS中这很简单;每个经理都会注册自己的生命周期通知,暂停appDidEnterBackground
并在appDidEnterForeground
上恢复。
我的问题是:如何在Android中“管理”这些管理员,以便当应用程序对用户不可见时停止运行,并在应用程序再次打开时恢复?据我所知,当应用程序在后台和前台之间切换时,没有全局onPause
和onResume
被调用。
我研究过使用BoundServices但是我需要每个活动和每个管理器之间的绑定,以便在所有活动都未绑定之前不会销毁管理器?
帮助!我觉得经理可能不是让这些活动保持活力的正确方法......
答案 0 :(得分:1)
也许这可以帮助http://www.stackoverflow.com/questions/20912229/ ...... 跟踪onStart等计数的东西。
答案 1 :(得分:-1)
在Application课程中启动您的服务。 终止由“系统”处理......
public void onTerminate()
此方法适用于模拟过程环境。永远不会在生产Android设备上调用它,只需杀死它们即可删除进程;这样做时不会执行任何用户代码(包括此回调)。