我的屏幕保护程序应用程序中的奇怪生命周期行为

Hua*_*ang 7 lifecycle android screensaver

我刚刚开发了一个屏幕保护程序应用程序,我在其生命周期中发现了一个奇怪的行为.我的工作流程是这样的:

  1. 启动我RegisterService,我称之为registerReceiver注册方法BroadcastReceiver,可以接收ACTION_SCREEN_OFF.

2.在这个onReceive方法中BroadcastReceiver,我开始一个活动作为屏幕保护程序.

3.在活动中,我写了一个Log.i()语句来跟踪它的运行情况.

我的问题是:

当屏幕超时或按POWER键时,屏幕关闭,系统将发送ACTION_SCREEN_OFF消息.正如我所料,我的接收器启动屏幕保护程序活动.不过,我觉得这个活动要求onCreate(),onResume(),onPause(),onResume()依次按照logcat的输出.

好像有些活动出现在我的屏幕保护程序前面并立即完成,所以我的屏幕保护程序调用onPause()然后onResume(). 在此输入图像描述

任何的想法?这个问题困扰我编程,请帮忙.谢谢!

Jor*_*lar 0

我可以向您推荐一些可能对您有用的非常简单的方法,如果您不想要暂停行为,为什么不尝试覆盖该方法onPause()并且什么也不做:P不调用super.onPause(),这将终止它的行为。

其他可能对您有用的事情是,声明一个静态变量,在“onResume()”方法上添加 1,并在调用“onStop()”时返回“0”。现在只需评估何时调用“onResume()”,如果变量为“0”,则为第一次,其他任何操作都不执行。

我希望这会有所帮助,因为关于您的问题没有太多更具体的信息。