當我的主要活動在啓動屏幕後啓動時,它會分析4個大XML文件。這需要幾秒鐘的時間,我可以在啓動畫面顯示的時間內隱藏它。在Android中的方向更改時活動重新加載
但是,當屏幕方向改變或者當我在子活動後回到主活動時,它會再次解析,從而導致我的應用程序「掛起」幾秒鐘,並且它沒有響應或者該時間內的任何內容。
我明白這是Android中的正常行爲,但沒有辦法避免這種情況?
我看了一些關於savedinstancestate,但我似乎無法理解的文檔..
當我的主要活動在啓動屏幕後啓動時,它會分析4個大XML文件。這需要幾秒鐘的時間,我可以在啓動畫面顯示的時間內隱藏它。在Android中的方向更改時活動重新加載
但是,當屏幕方向改變或者當我在子活動後回到主活動時,它會再次解析,從而導致我的應用程序「掛起」幾秒鐘,並且它沒有響應或者該時間內的任何內容。
我明白這是Android中的正常行爲,但沒有辦法避免這種情況?
我看了一些關於savedinstancestate,但我似乎無法理解的文檔..
如果您的API級別爲12或更低,請在每個活動節點的Android清單文件中添加此代碼。
android:configChanges="orientation|keyboardHidden"
對於13級及以後你還必須有「屏幕尺寸」,即:
android:configChanges="orientation|keyboardHidden|screenSize"
現在在你的每一個活動的Java類粘貼此代碼。
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
}
// Checks whether a hardware keyboard is available
if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) {
Toast.makeText(this, "keyboard visible", Toast.LENGTH_SHORT).show();
} else if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES) {
Toast.makeText(this, "keyboard hidden", Toast.LENGTH_SHORT).show();
}
}
加利普選中此http://developer.android.com/guide/topics/resources/runtime-changes.html &張貼任何問題之前,也是谷歌。
正如我在我的最後一句話說,我不明白他們在說什麼因爲有我缺乏的英語和Android體驗.. 順便說一句我的Googleing了那裏;) – Galip 2010-12-06 09:05:21
您可以通過在AndroidManifest文件中添加android:configChanges =「orientation」來避免這種情況。
非常感謝你!這工作:) – Galip 2010-12-06 12:26:14