顯示具有 others 標籤的文章。 顯示所有文章
顯示具有 others 標籤的文章。 顯示所有文章

2011年12月28日 星期三

gcc4.4降級gcc4.3

有的時候用make編譯source code時,會出現一些warning甚至是錯誤,告知gcc版本4.4可能修改過某些東西,所以make終止。如果要把gcc4.4降至gcc4.3,通常可以解決這些問題,步驟如下:

apt-get install gcc-4.3 g++-4.3

cd /usr/bin

sudo rm gcc
sudo rm g++

sudo ln -s gcc-4.3 gcc
sudo ln -s g++-4.3 g++

gcc --version
確定是不是gcc4.3版本後,重新make

Android - Lifecycle (1) - activity

請看官網的說明
http://developer.android.com/reference/android/app/Activity.html

簡單的程式測式碼如下:
public class TestRotate extends Activity {

    public void onCreate(Bundle savedInstanceState) {
        Log.d("TestRotate","create");
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
   
    public void onStart(){
        Log.d("TestRotate","onStart");
        super.onStart();
    }

    public void onResume(){
        Log.d("TestRotate","onResume");
        super.onResume();
    }

    public void onRestart(){
        Log.d("TestRotate","onRestart");
        super.onRestart();
    }
   
   
    public void onPause(){
        Log.d("TestRotate","onPause");
        super.onPause();
    }

    public void onStop(){
        Log.d("TestRotate","onStop");
        super.onStop();
    }

    public void onDestroy(){
        Log.d("TestRotate","onDestroy");
        super.onDestroy();
    }

}


來看看一個Activity在硬體按鈕操作下的流程

程式第一次執行:
onCreate
onStart
onResume

按下home key:
onPause
onStop

再次程式執行:
onRestart
onStart
onResume

按下return Key:
onPause
onStop
onDestroy

接下來看看啟動Auto-rotate screen時,旋轉了畫面的流程:
onPause
onStop
onDestroy
onCreate
onStart
onResume

請注意,正常情況下如果旋轉畫面,其實是Destroy這個Activity後,再重啟一個Activity。換言之,有可能會讓原本的資料流失,如果要避免這個現象,可以在AndroidManifest.xml中,修改activity的tag如下:

        <activity android:name=".Test"
                  android:label="@string/app_name"
                  android:configChanges="orientation|keyboardHidden"
                  >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

加上 android:configChanges="orientation",則程式不會重新經歷onPause到onResume的動作。而後面的keyboardHidden則是當使用者開啟手機的實體鍵盤時,不會重新經歷onPause到onResume的動作。