編輯:關於Android編程
問題:橫豎屏切換時Activity的生命周期?
測試環境:華為mate7
package com.virglass.beyond.activity;
import android.app.Activity;
import android.content.res.Configuration;
import android.os.Bundle;
import com.virglass.beyond.utils.LogUtil;
/**
* 系統設置更改
* @author Administrator
*
*/
public class ConfigurationActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_configuration);
LogUtil.e(jintuo, ==== onCreate() ====);
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
LogUtil.e(jintuo, ==== onStart() ====);
}
@Override
protected void onRestart() {
// TODO Auto-generated method stub
super.onRestart();
LogUtil.e(jintuo, ==== onRestart() ====);
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
LogUtil.e(jintuo, ==== onResume() ====);
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
LogUtil.e(jintuo, ==== onPause() ====);
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
LogUtil.e(jintuo, ==== onStop() ====);
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
LogUtil.e(jintuo, ==== onDestroy() ====);
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
super.onConfigurationChanged(newConfig);
LogUtil.e(jintuo, ==== onConfigurationChanged() ====);
}
}
1、第一種情況:AndroidMainfist不設置Activity的android:configChanges時

橫屏切換到豎屏Log 打印如下:

總結:AndroidMainfist不設置Activity的android:configChanges時 橫屏切換豎屏/豎屏切換橫屏Activity各生命周期方法只調用一次。
2、第二種情況:設置Activity的android:configChanges=”orientation”時
豎屏切換到橫屏 Log 打印如下:

橫屏切換到豎屏Log 打印如下:

總結:豎屏切換橫屏時先調用onConfigurationChanged()方法,再調用Activity各生命周期方法, 橫屏切換到豎屏只掉用onConfigurationChanged()方法。
3、第三種情況:設置Activity的android:configChanges=orientation|keyboard|keyboardHidden|screenSize 時
豎屏切換到橫屏 Log 打印如下:

橫屏切換到豎屏Log 打印如下:

總結: 橫屏切換到豎屏,豎屏切換到橫屏各調用一次onConfigurationChanged() 方法
4、第四種情況:設置Activity的android:configChanges=”orientation|keyboard|keyboardHidden” 時 一個或多個執行結果和第二種結果相同。
5、第五種情況:在第三種情況基礎上再設置Activity的android:screenOrientation=portrait 屬性,橫豎屏切換無任何打印。
android 內存洩漏分析技巧
java虛擬機運行一般都有一個內存界限,超過這個界限,就會報outofmemory。這個時候一般都是存在內存洩漏。解決內存洩漏問題,竊以為分為兩個步驟:分析應用程序是否真
Android DragVideo實現播放視頻時任意拖拽的方法
Android DragVideo實現播放視頻時任意拖拽DragVideoA Method to Drag the Video When Playing Video一種在
Android ActionBar動作欄
ActionBar動作欄 一、ActionBar:(動作欄) (一)、簡介:(擴展TitleBar) Action bar(動作欄)是一個導航控
Android ListView的item背景色設置
1.如何改變item的背景色和按下顏色 listview默認情況下,item的背景色是黑色,在用戶點擊時是黃色的。如果需要修改為自定義的背景顏色,一般情況下有三種