Android 2.1.2,设备被锁定但似乎onPause和onResume被多次调用

时间:2011-07-11 08:27:11

标签: android android-activity lifecycle onresume onpause

我有一个使用MediaPlayer播放音乐的应用程序。 当我播放音乐并锁定我的设备时,它开始在不同的时间段内调用onPause和onResume,(这不是一个音轨的时间)

我的日志是这样的:

07-11 10:08:50.933: INFO/Activity(9956): resume PlayerActivity
07-11 10:08:50.948: INFO/Activity(9956): pause PlayerActivity
07-11 10:08:56.300: INFO/Activity(9956): resume PlayerActivity
07-11 10:08:56.316: INFO/Activity(9956): pause PlayerActivity
07-11 10:09:21.839: INFO/Activity(9956): resume PlayerActivity
07-11 10:09:21.886: INFO/Activity(9956): pause PlayerActivity
07-11 10:09:27.003: INFO/Activity(9956): resume PlayerActivity
07-11 10:09:27.019: INFO/Activity(9956): pause PlayerActivity
07-11 10:18:49.738: INFO/Activity(9956): resume PlayerActivity
07-11 10:18:49.745: INFO/Activity(9956): pause PlayerActivity

这是Android Activity的正常行为吗?没有按下任何按钮或其他任何设备完成。

祝你好运

2 个答案:

答案 0 :(得分:1)

有一种方法可以避免它。我相信这是由于锁定屏幕时配置更改造成的。如果您的应用具有横向方向且锁定屏幕具有纵向方向,则表示配置发生了变化。如果你有屏幕导航按钮,那些也是如此,那些因为锁屏而消失,导致屏幕尺寸发生变化。在清单文件中,您可以更改活动的配置更改并指定一大堆。这应该会阻止Android在每次锁定屏幕时重建您的活动并停止许多onPause - onResume回调。

答案 1 :(得分:0)

是的,这是Android的正常行为。基于正在执行的动作,将调用与生命周期相对应的方法。在每种情况下,您可能必须覆盖适当的方法以获得所需的结果。