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

前端之家收集整理的这篇文章主要介绍了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%肯定这一点,因为我没有在我的环境中测试它,但这是我找到的唯一合理的解释.

希望这可以帮助…

猜你在找的Android相关文章