我有一个关于android的问题。如果我的活动类与外部库交互。当应用程序进入后台或返回前台时,我正在处理的这个库必须执行一些进程。
有什么方法可以知道应用程序何时进入后台。
注意:我不想在活动中做任何事情。我不想在调用 onPause 时向库发送回调。
谢谢
我有一个关于android的问题。如果我的活动类与外部库交互。当应用程序进入后台或返回前台时,我正在处理的这个库必须执行一些进程。
有什么方法可以知道应用程序何时进入后台。
注意:我不想在活动中做任何事情。我不想在调用 onPause 时向库发送回调。
谢谢
如果我理解您的问题,您可以使用Application.registerActivityLifecycleCallbacks并实现您自己的Application.ActivityLifecycleCallbacks。
就像是:
class myActivityLifecycleHandler implements ActivityLifecycleCallbacks{
// Methods implementation here
}
yourActivity.getApplication().registerActivityLifecycleCallbacks(new myActivityLifecycleHandler())
当应用程序进入后台时,您可以写入一些文件。
然后你的图书馆可能会花时间检查这个文件。
Application.registerActivityLifecycleCallbacks
确实是您要使用的正确 api。不幸的是它确实是 API14+,所以你有以下选择:
使用这个库来实现活动生命周期回调。您将不得不在您正在处理的应用程序中扩展您的活动,但无论如何您都必须做一些事情,因为您需要少于 API14 的支持。
实现此库后,您可以在回调中创建int
计数。这个计数可以每次递增和递减,onStart()
并onStop()
为每个活动回调。计数将在应用程序打开时从 0 -> 1 开始,在应用程序关闭/背景时从 1 -> 0 开始。当满足这些条件时,您可以调用您的库。
请记住,当您在后台运行应用程序时,操作系统可以随时将其终止。如果您有任何数量的网络或任何时间,请启动服务以尽快处理所有这些。
覆盖activity的onPause方法,当activity要背景时调用onPause