我需要知道应用程序何时完成停止它启动的所有本地服务。
我该怎么做?
答案 0 :(得分:1)
您可以尝试使用onDestroy()
(不推荐),以了解Android何时从内存中清理您的应用。或者也可以使用onStop()
来了解活动何时在后台发送
在Activity栈的第一个活动中实现这两个方法。
让我们看看它是否有帮助,因为到目前为止我还没有尝试过。
答案 1 :(得分:0)
一个想法是使用BoundService,尽管它是您的应用程序自己的服务。根据定义,当删除las连接时,绑定服务将停止。
另一个想法是在Application对象中定义count(可以覆盖全局Application对象)。您可以在每个onRause中递增计数,并在每个onPause中递减计数。
答案 2 :(得分:0)
您可以在main函数上使用try / finally并在最后一个块中清理服务
您可以使用对象终结器来发出关闭命令。你不会确切知道它何时发生,因为垃圾收集器会以自己的速度运行,但你知道它最终会发生。
答案 3 :(得分:-1)
我现在正在解决同样的问题,我有一个想法并将实施它: 1.static变量调用(String currentShownActivity)。 2.在每个Activity(onResume())中,我用活动名称填充变量。因此,当我在活动之间导航时,currentShownActivity变量会更改并带有当前活动名称。 3.在每个onPause()上,设置标志,指示活动onPause()调用(即布尔值IsPauseCalled) 4.in onStop()检查IsPauseCalled和活动名称。 如果调用onPause活动并且currentShownActivity中的名称没有改变(这意味着我们将活动留给"没有活动")并且这意味着按下[home]键。
了解应用程序未运行的集成方式Check onDestroy主要活动。