Android學習雜記-Activity基礎知識

來源:互聯網
上載者:User

標籤:

本文摘錄自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基礎知識

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.