2010-11-28 57 views
7

当Android关闭屏幕并锁定屏幕时,我看到一些有趣的活动流程...我的应用程序经历了常规流程,onCreate,onStart和onResume。然后,我让我的手机坐在那里。当屏幕变黑时,调用onPause。没关系。然后5秒钟后,应用程序被终止(onStop,onDestroy)。这也没关系。但立即调用onDestroy后,调用onCreate,onStart和onResume,即使屏幕为空白,也应重新启动应用程序。该应用程序具有加载时间,并在启动时播放声音,因此当您在30秒前设置的手机开始播放声音时,它会令人毛骨悚然。为什么android杀了应用程序,然后重新启动它?目标是2.1更新,手机是三星Captivate。任何人看到这一点,并知道一种方法来阻止它?屏幕关闭时的时髦android活动行为?

回答

3

它可能不是你所看到的,但在我的手机上,发生这样的事情是因为睡眠模式总是处于一个方向,如果应用程序在另一个方向,它会在睡眠方向中被杀死并重新创建。如果你问我的话,那会很不理想。

这听起来像你可能没有东西,比如你的启动声音与足够的具体原因联系在一起。如果在“开启”时旋转手机会发生什么情况?无论如何,你应该能够检测到屏幕没有打开,而不是(或推迟)一个真正的启动。

如果一个隐含的方向变化是罪魁祸首,你可以改变你的应用程序如何处理这些 - 设置的东西声称你的应用程序可以动态更改而不必重新创建。

+0

我认为Chris Stratton在这里是正确的。你也可以在这个相关的问题中找到更多关于如何处理这个问题的信息:http://stackoverflow.com/questions/456211/activity-restart-on-rotation-android – Nailuj 2010-11-28 17:05:45

+0

该应用被锁定到横向模式。在运行时更改方向不起作用。但是我可以看到android在休眠时可能会如何将其重新启动为纵向模式。时间去寻找可以告诉我屏幕是开还是关的例程。 – dwrussell2 2010-11-28 17:35:30

3

在活动中的表现,为每个应用程序添加:

android:configChanges="orientation|keyboardHidden" 

这告诉Android版会自己处理这两种情况 - 虽然,当然你在撒谎:你不会做狗屎来处理它们,但Android不知道这一点。这适用于在横向模式下运行的应用程序/游戏/等,绝不会改变方向。