如何在我的Android应用中管理长时间运行的单身人士

时间:2015-11-06 12:42:28

标签: android performance android-service

我正在构建我的iOS应用的Android版本,并可以使用一些指导来了解如何实现某些功能。

该应用程序有几个职责;监控位置变化并将其添加到数据库,通过Bonjour广告和发现可用的对等方,维护与发现的对等方和服务器的连接,以及通过蓝牙LE广告和监听附近的对等方。

为了组织它们,我为每个职责创建了“经理”单例类(例如,LocationManager,BonjourManager等)。我在应用程序启动时启动它们,并在应用程序终止时停止它们。

显然,当用户没有与应用程序交互时,我不希望它们在后台运行。在iOS中这很简单;每个经理都会注册自己的生命周期通知,暂停appDidEnterBackground并在appDidEnterForeground上恢复。

我的问题是:如何在Android中“管理”这些管理员,以便当应用程序对用户不可见时停止运行,并在应用程序再次打开时恢复?据我所知,当应用程序在后台和前台之间切换时,没有全局onPauseonResume被调用。

我研究过使用BoundServices但是我需要每个活动和每个管理器之间的绑定,以便在所有活动都未绑定之前不会销毁管理器?

帮助!我觉得经理可能不是让这些活动保持活力的正确方法......

2 个答案:

答案 0 :(得分:1)

也许这可以帮助http://www.stackoverflow.com/questions/20912229/ ...... 跟踪onStart等计数的东西。

答案 1 :(得分:-1)

Application课程中启动您的服务。 终止由“系统”处理......

  

public void onTerminate()

     

此方法适用于模拟过程环境。永远不会在生产Android设备上调用它,只需杀死它们即可删除进程;这样做时不会执行任何用户代码(包括此回调)。

相关问题