Android核心組件 Activity組件

來源:互聯網
上載者:User

標籤:ide   onpause   ace   pac   stat   pack   over   create   mil   

1、Activity簡介

  四大組件之一的Activity組件,在應用中一個Activity可以用來表示一個介面,中文意思也可以理解為“活動”,即一個活動開始,代表Activity組件啟動,活動結束,代表一個Activity的生命週期結束。一個Android應用必須通過Activity來運行和啟動,Activity的生命週期交給系統統一管理。

  理解以下四個基本概念,將有助於我們更好的瞭解Android系統內部機制:

  Activity:活動,程式中的介面

  Application:應用程式

  Activity棧:管理Activity的棧結構

  Task:任務 

2、Activity狀態在Android中,Activity擁有三個基本狀態:(一)Resumed:一個新Activity啟動入棧後,它在螢幕最前端,處於棧的最頂端,此時它處於可見並可和使用者互動的啟用狀態。(二)Paused:當Activity被另一個透明或者Dialog樣式的Activity覆蓋時的狀態。此時它依然與視窗管理器保持串連,系統繼續維護其內部狀態,所以它依然可見,但它已經失去了焦點故不可與使用者互動。(三)Stoped:當Activity被另外一個Activity覆蓋,失去焦點並不可見時處於Stoped狀態。 3、Activity生命週期

生命週期方法詳解:

 

官方流程圖: 

 

 代碼清單:生命週期方法測試(MainActivity.java)

 1 package com.bothsunny.apps.a31_activity; 2  3 import android.support.v7.app.AppCompatActivity; 4 import android.os.Bundle; 5  6 import com.orhanobut.logger.Logger; 7  8 public class MainActivity extends AppCompatActivity { 9 10     /**11      * 當一個Activity建立時會調用該方法,我們可以在該方法中進行組件的初始化工作12      *13      * @param savedInstanceState14      */15     @Override16     protected void onCreate(Bundle savedInstanceState) {17         super.onCreate(savedInstanceState);18         setContentView(R.layout.activity_main);19         Logger.i("MainActivity-onCreate");20     }21 22     /**23      * 在Activity可見,但還不能進行互動時會調用該方法24      * 在onCreate之後調用25      */26     @Override27     protected void onStart() {28         super.onStart();29         Logger.i("MainActivity-onStart");30     }31 32     /**33      * 當Activity可以互動時調用34      * 在onStart之後調用,該方法被調用後就表示Activity進入啟用狀態35      * resumed狀態36      */37     @Override38     protected void onResume() {39         super.onResume();40         Logger.i("MainActivity-onResume");41     }42 43     /**44      * 一個從stoped狀態的Activity重新被啟用時調用45      * 接著會調用onStart()方法46      */47     @Override48     protected void onRestart() {49         super.onRestart();50         Logger.i("MainActivity-onRestart");51     }52 53     /**54      * 當前Activity被另一個Activity覆蓋,失去焦點,但還可見,不能互動55      * 那麼此時當前Activity進入paused狀態(暫停狀態)56      * 當此狀態下Activity重新擷取焦點時會再調用onResume()方法57      */58     @Override59     protected void onPause() {60         super.onPause();61         Logger.i("MainActivity-onPause");62     }63 64     /**65      * 當前Activity被另一個Activity完全覆蓋,不可見且不可互動66      * 那麼此時當前Activity進入了stoped狀態(停止狀態)67      * 此狀態下的Activity被重新顯示時,會調用onRestart()方法68      */69     @Override70     protected void onStop() {71         super.onStop();72         Logger.i("MainActivity-onStop");73     }74 75     /**76      * 當前Activity被銷毀時調用,表示結束生命週期77      */78     @Override79     protected void onDestroy() {80         super.onDestroy();81         Logger.i("MainActivity-onDestroy");82     }83 }
 4、Activity傳遞資料  在Android中,不同的Activity執行個體可能運行在一個進程中,也可能運行在不同的進程中。因此我們需要一種特別的機制協助我們在Activity之間傳遞訊息。Android中通過Intent對象來表示一條資訊,一個Intent對象不僅包含這個訊息的目的地,還可以包含訊息的內容,這好比一封Email,其中不僅應該包含收件地址,還可以包含具體的內容。對於一個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.