检查用户何时关闭了android应用程序

时间:2019-05-11 17:50:28

标签: java android

我正在构建一个应用程序,该应用程序将在用户10分钟没有使用该应用程序时锁定,因此我需要在用户关闭该应用程序时启动一个计时器。我尝试使用onUserLeaveHint()和onPause(),但是当应用程序使用其他活动时,它们会启动计时器。是否只有在用户关闭应用程序时才收到通知,而不仅仅是在用户进行其他活动时才得到通知?

2 个答案:

答案 0 :(得分:0)

您可以将TRIM_MEMORY_UI_HIDDEN标志用作Application类中onTrimMemory()回调的指示器。

class App : Application() {
    override fun onTrimMemory(level: Int) {
        super.onTrimMemory(level)
        if (level == ComponentCallbacks2.TRIM_MEMORY_UI_HIDDEN) {
            // Do stuff
        }
    }
}

请注意,如果您有前台服务,则此回调不会在某些Android版本上触发

答案 1 :(得分:-1)

您可以使用Lifecycle

要使用它,您需要添加android.arch.lifecycle:common-java8:1.1.1依赖项,创建必须实现Application的{​​{1}}类。

此接口没有任何要实现的方法,而是依赖于LifecycleObserver带注释的方法。

例如

OnLifecycleEvent

public class MyApplication extends Application implements LifecycleObserver { // ... @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE) public void onApplicationPaused() { // ... } } 的{​​{1}}被调用时,MyApplication也将被调用。