1.當橫豎屏切換時:
① 控件的狀态是系統維護的,開發人員不用維護
② 使用者自定的變量會重新初始化
解決:
1 橫豎屏切換時:
重寫onSaveInstanceState(),在這個方法中儲存資料(裡面含有Bandle參數)
重寫onCreate()或onRestoreInstanceState(),從 Bundle 中解析出已儲存資訊并恢複activity狀态
2 在清單檔案中給Activity配置 screenOrientation ---> portrait (頭像 ) landscape(風景) ---限制橫豎屏切換
3 在橫豎屏切換時,不重新建立Acitivity
配置android:configChanges="keyboardHidden|screenSize|orientation"
③ 螢幕的配置參數發生改變的時候調用的方法
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
// 豎屏
}else if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){
// 橫屏
}
}
④ 在activity中監聽傳回按鍵的按下操作
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (!isExit) {
Toast.makeText(SeriesActivity.this, "再按一次退出", Toast.LENGTH_SHORT).show();
isExit = true;
mHandler.sendEmptyMessageDelayed(EXIT, DELAY_TIME);
return true;
} else {
}
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean handleMessage(Message msg) {
switch (msg.what) {
case EXIT:
isExit = false;
break;
}
return false;
}
⑤ 橫豎屏切換的activity
前一個activity執行到destroy,後一個activity從oncreate()開始執行到onResume();
⑥ Activity之間的跳轉
前一個activity執行到stop(), 後一個activity從oncreate()開始執行到onResume(),按回退鍵銷毀;