2010-11-28 55 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不知道這一點。這適用於在橫向模式下運行的應用程序/遊戲/等,絕不會改變方向。