我在我的應用程序中有兩個活動。Android中奇怪的屏幕旋轉行爲
當設備處於縱向位置並且設備轉向橫向顯示「摘要屏幕」時,將顯示主要活動活動(ShowAndTellActivity)已啓動。
該應用的這部分似乎能可靠地工作,並且與取得了以下:
@Override
public void onConfigurationChanged (Configuration newConfig) {
super.onConfigurationChanged(newConfig);
int orientation=newConfig.orientation;
switch(orientation) {
case Configuration.ORIENTATION_LANDSCAPE:
show_and_tell_intent.setClass(getApplicationContext(),ShowAndTellActivity.class);
show_and_tell_intent.putExtra("each_pays", v_currency_symbol.concat(new DecimalFormat("0.00").format(v_each_to_pay)));
startActivity(show_and_tell_intent);
break;
case Configuration.ORIENTATION_PORTRAIT:
break;
}
}
摘要活動包含以下代碼以finish()
當設備旋轉回到縱向位置的活動:
@Override
public void onConfigurationChanged (Configuration newConfig) {
super.onConfigurationChanged(newConfig);
int orientation=newConfig.orientation;
switch(orientation) {
case Configuration.ORIENTATION_LANDSCAPE:
break;
case Configuration.ORIENTATION_PORTRAIT:
finish();
break;
case Configuration.ORIENTATION_UNDEFINED:
finish();
break;
}
}
但是,當設備首次旋轉回肖像時,摘要活動並未完成 - 相反,摘要屏幕以縱向顯示(看起來很糟糕)。
將設備旋轉回風景(摘要屏幕再次顯示「OK」)並再次返回肖像,結果摘要活動按預期完成。
從這個角度看,旋轉設備似乎可以在應用程序正確切換活動的情況下可靠地工作。換句話說,它只是第一次旋轉回肖像,似乎沒有觸發摘要活動的finish()
。
這幾乎就像彙總屏幕活動啓動時一樣,直到它改變了一次,它才知道它的方向。
您可以鎖定活動以僅在清單中以單一方向顯示。我建議你這樣做。 –
@Gabe鎖定清單中的方向將會阻止應用程序檢測到旋轉並因此阻止顯示摘要活動。這不是我正在尋找的。 –
就我個人而言,我會考慮一個功能,當應用程序更改爲向我展示旋轉時完全不同的某個功能時,我討厭它。但是在那種情況下,你是否考慮將摘要作爲一個片段,並使用內置的旋轉顯示更改行爲來顯示帶有該片段的佈局而不是普通的佈局? –