Android Launcher開發,橫屏Launcher中啓動一個豎屏app,退出app後launcher也變成豎屏的了

前段時間在做模擬器的Launcher開發,遇到這個問題,使用的夜神模擬器,不確定其他模擬器也有這個問題,問題如下:


可以看到本來是橫屏的launcher在退出app後也變成豎屏了 。

看到這種bug,很容易想到的是橫豎屏切換的問題,launcher切換成豎屏後不能自己切換回來

解決方法是通過一開始activity的onCreate方法時,得到屏幕方向

/**
 * 在設置的配置信息中獲取屏幕方向
 * 系統中定義: int ORIENTATION_PORTRAIT = 1;  豎屏
 * 系統中定義: int ORIENTATION_LANDSCAPE = 2; 橫屏
 */
miOriention = this.getResources().getConfiguration().orientation;

在AndroidManifest中給啓動app的activity的屬性設置configChanges參數,使其得到屏幕方向改變的回調,並於回調中設置成屏幕原來的方向。

android:configChanges="orientation|keyboardHidden|screenSize"
 /**
     * 屏幕方向發生改變的回調方法
     * @param newConfig 配置信息
     */
    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        if (newConfig.orientation != miOriention) {
            setRequestedOrientation(miOriention == 2 ? ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE : ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        }
        super.onConfigurationChanged(newConfig);
    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章