【问题标题】:Android 2.1.2, Device is locked but it seems onPause and onResume is called multiple timesAndroid 2.1.2,设备被锁定,但似乎 onPause 和 onResume 被多次调用
【发布时间】:2011-07-11 08:27:10
【问题描述】:

我有一个使用 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 的正常行为吗?那里没有按下按钮或使用设备完成任何其他操作。

最好的问候

【问题讨论】:

    标签: android android-activity lifecycle onresume onpause


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      是的,这是 Android 的正常行为。根据正在执行的操作,将调用与生命周期对应的方法。在每种情况下,您可能都必须重写适当的方法才能获得所需的结果。

      【讨论】:

      • 可以,但是没有执行任何动作,好像onResume和onPause是随机调用的。
      • 是的,这就是生命周期的模式。如果它不影响您的功能,则无需考虑。
      猜你喜欢
      • 2014-01-08
      • 2018-03-02
      • 1970-01-01
      • 2012-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-29
      • 1970-01-01
      相关资源
      最近更新 更多