2008年12月9日 星期二

在onCreate()中變更Activity的orientation時的注意事項

這點很重要,因為變更螢幕方向會導致一連串的destroy和create,所以如果你在onCreate()裡面作這件事的話那這個Activity的initialize會一團混亂(onCreate()被呼叫二次之類)。

要解決這問題基本上最好把orientation的設定獨立出來成一個函數,如果要改變方向的話就直接return,讓換方向後的onCreate(不會更動orientation)來處理其他該作的事。
另外這途中Android會去呼叫onResume()、onDestroy()、onPause(),所以如果你在這裡面有做事的話要記得檢查這個情況。

沒有留言:

CODE { display: block; /* fixes a strange ie margin bug */ font-family: Courier New; font-size: 8pt; overflow:auto; background: #f0f0f0 url(http://klcintw.images.googlepages.com/Code_BG.gif) left top repeat-y; border: 1px solid #ccc; padding: 10px 10px 10px 21px; max-height:200px; height:200px; // for IE6 line-height: 1.2em; } #quote { display: block; /* fixes a strange ie margin bug */ font-family: Verdana; font-size: 10pt; overflow:auto; background: #f7f7f7 url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKN19b4aT1DHj8GUNi63hQtkKMMZBz85Is4BxJdhPcfrcbaDczl_1lhtztSIirdEAoNLN5F-aDcr7pBSdyFbupvipv2q7vmWWhcqhgsf8nr_nH0jBKyn4YGlBfuiV-BOWA56z7mdE4XXo/s288/quote-l.gif) left top no-repeat; border: 4px dotted #ccc; padding: 15px 15px 15px 31px; /*up right bottom left*/ max-height:300px; line-height: 1.2em; }