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

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

>启动我的RegisterService,我在其中调用registerReceiver方法注册broadcastReceiver,它可以接收ACTION_SCREEN_OFF.

2.在这broadcastReceiver的onReceive方法中,我启动一个活动作为屏幕保护程序.

3.在活动中,我编写Log.i()语句来跟踪其运行情况.

我的问题是:

当屏幕超时或按POWER键时,屏幕关闭,系统将发送ACTION_SCREEN_OFF消息.正如我所料,我的接收器启动屏幕保护程序活动.但是,我发现这个Activity依次根据logcat中的输出调用onCreate(),onResume(),onPause(),onResume().

似乎有些活动出现在我的屏幕保护程序前面并立即完成,因此我的屏幕保护程序调用onPause()然后调用onResume().

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

解决方法

基于对 PowerManagerService.java代码的简要研究,当关闭屏幕时,系统会启动动画(查看类源的第2183行)来执行此操作.这意味着您的活动将暂停,然后在动画结束后恢复.

我不能100%肯定这一点,因为我没有在我的环境中测试它,但这是我找到的唯一合理的解释.

希望这可以帮助…

相关文章

###实现效果*本实例主要实现用ViewPage和Fragment实现选项卡...
一、安装 JDK 下载JDK最新版本,下载地址如下: http://www....
这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...