標籤:
本文摘錄自Tekkaman部落格。
【Activity介紹】
一個Activity是一個應用程式組件,提供一個螢幕,方便和使用者實現互動。每一個activity被給予一個視窗,在上面可以繪製使用者介面。在一個Activity建立時,其實現的onCreate(Bundle savedInstanceState)方法將被系統回調,通常在這個方法裡調用setContentView(View view)方法載入顯示布局檔案UI,並利用findViewById方法擷取布局UI中的控制項,對其修改資料或填充資料。
【Activity生命週期】
一個應用程式通常由多個activity組成,在系統中的Activity被一個Activity棧所管理。當一個新的Activity啟動時,將被放置到棧頂,成為運行中的Activity,前一個Activity保留在棧中,不再放到前台,直到新的Activity退出為止。
Activity有四種本質區別的狀態:
1. 在螢幕的前台(Activity棧頂),叫做活動狀態或者運行狀態
2. 如果一個Activity失去焦點,但是依然可見(一個新的非全屏的Activity 或者一個透明的Activity 被放置在棧頂),叫做暫停狀態(Paused)。一個暫停狀態的Activity在系統記憶體極端低下的時候將被殺掉。
3. 如果一個Activity被另外的Activity完全覆蓋掉,叫做停止狀態(Stopped)。它依然保持所有狀態和成員資訊,但是它不再可見,所以它的視窗被隱藏,當系統記憶體需要被用在其他地方的時候,Stopped的Activity將被殺掉。
4. 如果一個Activity是Paused或者Stopped狀態,系統可以將該Activity從記憶體中刪除,Android系統採用兩種方式進行刪除,要麼要求該Activity結束,要麼直接殺掉它的進程。當該Activity再次顯示給使用者時,它必須重新開始和重設前面的狀態。
Activity生命週期的幾個過程:
1. 啟動Activity:系統會先調用onCreate方法,然後調用onStart方法,最後調用onResume,Activity進入運行狀態。
2. 當前Activity被其他Activity覆蓋其上或被鎖屏:系統會調用onPause方法,暫停當前Activity的執行。
3. 當前Activity由被覆蓋狀態回到前台或解鎖屏:系統會調用onResume方法,再次進入運行狀態。
4. 當前Activity轉到新的Activity介面或按Home鍵回到主屏,自身退居後台:系統會先調用onPause方法,然後調用onStop方法,進入停滯狀態。
5. 使用者後退回到此Activity:系統會先調用onRestart方法,然後調用onStart方法,最後調用onResume方法,再次進入運行狀態。
6. 當前Activity處於被覆蓋狀態或者後台不可見狀態,即第2步和第4步,系統記憶體不足,殺死當前Activity,而後使用者退回當前Activity:再次調用onCreate方法、onStart方法、onResume方法,進入運行狀態。
7. 使用者退出當前Activity:系統先調用onPause方法,然後調用onStop方法,最後調用onDestory方法,結束當前Activity。
【建立Activity】
繼承Activity類及其子類,實現onCreate方法(還有onPause等)
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button mybtn = (Button) findViewById(R.id.mybtn); }}
【在manifest檔案聲明你的activity】
//應用程式初次開機的Activity
<activity android:name="com.***.activity.MainActivity" >
<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
//其他Activity <activity android:name="com.***.activity.OtherActivity" ></activity>
【啟動一個Activity】
最簡單的方法:
Intent intent = new Intent(MainActivity.this, OtherActivity.class);startActivity(intent);
Android學習雜記-Activity基礎知識