安卓學習筆記之Activity(一)
**
安卓四大元件之Activity
**
1.介紹
**
Activity的出現無處不在,從手機開始啟動的第一個頁面的都是Activity。主要用於可見的狀態與使用者進行互動。好比一張紙,我們需要用程式碼這隻“筆”來描繪一些資訊告訴讀者,這張紙裡面有些什麼內容和需要操作什麼東西。總的來說就是能看到的基本上和Activity。如果有什麼錯誤的地方,希望大家指出。感激不盡。
既然作為作業系統的元件,那麼每個元件都會有獨立的生命週期。
**
2. 生命週期
**
在Android的官方文件我們能夠看到這樣的一張圖片:
簡單看做是,系統會呼叫如下幾個方法。
OnCreate()–>OnStart()–>OnResume()–>OnPause()–>OnStop()–>OnDestroy()
Activity擁有四種基本狀態
1*.Active/Running*
一個Activity啟動入棧(裝載Activity的容器),有先進先出的特點。它會顯示螢幕的最前端(Activity棧頂)此時它是處於和使用者互動的啟用狀態,叫做活動狀態或者執行狀態
2. Paused
暫停狀態,被一個新的非全屏的Activity或者一個透明的Activity被放到棧頂,比如你用手機瀏覽網頁的時候,突然來了一個電話,那麼這個activity就是處於paused的狀態,但是它依然是保持活力的。
3. Stopped
停止狀態,如果一個activity完全為另一個Activity完全覆蓋,它不可見,所以它的視窗被隱藏,當系統記憶體吃緊的時候,停止狀態的Activity會被強行終止掉
4. Killed
殺死狀態,顧名思義,被系統回收,意味著系統記憶體吃緊的時候,或者你不需要用這個Activity的時候,系統會直接終止它的程式。
好了。那麼系統是如何運作Activity的呢 ?
那就是上面我們說的幾個方法了。
當我們首次使用ADT/Android studio建立安卓工程的時候,我們建立一個工程的時候都會預設建立一個OnCreate方法並呼叫它。
我們點選執行的時候,那麼就會彈出Hello world。
那我們新增剩餘的方法.
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
protected void onStart() {
Log.i("dd","onStart");
super.onStart();
}
@Override
protected void onPause() {
Log.i("dd","onPause");
super.onPause();
}
@Override
protected void onResume() {
Log.i("dd","onResume");
super.onResume();
}
@Override
protected void onStop() {
Log.i("dd","onStop");
super.onStop();
}
@Override
protected void onDestroy() {
Log.i("dd","onDestroy");
super.onDestroy();
}
}
當我按下返回這個按鈕的時候,退出到主介面。
但是當我按下,Home這個按鈕的時候,
這次並沒有銷燬,而是在後臺執行著。執行onPause和onStop這兩個方法,
當我點回去的時候發現,
繼續執行onStart()和onResume()方法。最後不用的時候會自動銷燬,執行onDestroy()
3.如何啟動一個Activity?
要啟動一個Activity用到的就是Intent這個類,我們先建立一個MyActivity類並在Manifest檔案裡註冊
public class MyActivity extends Activity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
然後通過Intent 建立一個物件,在Intent構造方法中分別傳入,Context,還有對應想跳轉另一個的Activity的類就行了。最後呼叫startActivity()將Intent的物件傳進去就行了。
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent=new Intent(this,MyActivity.class);
startActivity(intent);
}
相關文章
- Activity之間的動畫切換學習筆記(一)動畫筆記
- 學習筆記 AS入門(四) 元件篇之Activity筆記元件
- 安卓初學基礎學習筆記安卓筆記
- 安卓學習筆記20:Fragment入門安卓筆記Fragment
- 【讀書筆記】安卓學習筆記第一篇——個人雜談筆記安卓
- Android學習筆記-Activity的啟動模式Android筆記模式
- Andoroid學習筆記05——Activity佈局管理筆記
- canvas學習之API整理筆記(一)CanvasAPI筆記
- Android學習筆記04——Activity的生命週期Android筆記
- 《Android藝術開發探索》學習筆記之Activity的生命週期Android筆記
- 學習筆記(一)筆記
- 學習筆記之IdentityServer4(一)筆記IDEServer
- JSTL Tag學習筆記(一)之<c: />JS筆記
- centos5.4之apache學習筆記(一)CentOSApache筆記
- Deep Learning(深度學習)學習筆記整理系列之(一)深度學習筆記
- 安卓學習筆記---開篇(目錄結構)安卓筆記
- node學習筆記之39筆記
- 學習筆記之測試筆記
- Swoft 學習筆記之配置筆記
- Boltdb學習筆記之〇--概述筆記
- flask學習筆記之blueprintFlask筆記
- JS學習筆記之this指向JS筆記
- Java學習筆記之staticJava筆記
- oracle之awr學習筆記Oracle筆記
- Web之http學習筆記WebHTTP筆記
- Open CV 學習開發筆記之概述(一)筆記
- kitten 學習教程(一) 學習筆記筆記
- LaTeX學習筆記:一筆記
- ANFIS學習筆記(一)筆記
- Angular 學習筆記(一)Angular筆記
- GOLang 學習筆記(一)Golang筆記
- oracle學習筆記《一》Oracle筆記
- React 學習筆記【一】React筆記
- Jquery學習筆記(一)jQuery筆記
- goLang學習筆記(一)Golang筆記
- Canvas學習筆記(一)Canvas筆記
- SCSS學習筆記(一)CSS筆記
- vue學習筆記一Vue筆記