成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android Activity的生命周期結(jié)構(gòu)

移動(dòng)開發(fā) Android
本文將從Android官方網(wǎng)站的Activity生命周期結(jié)構(gòu)圖講起,教我們弄清所有的生命周期函數(shù)的原理,用實(shí)例表現(xiàn)Android Activity的生命周期結(jié)構(gòu)。

 下圖是官網(wǎng)的Activity生命周期結(jié)構(gòu)圖,從這個(gè)圖中可以看出Activity的生命周期函數(shù)挺多的,其實(shí)他的生命周期和以往我們看到的其他組件的生命周期一樣,都是從創(chuàng)建到銷毀的過(guò)程,只不過(guò)之間多加了幾個(gè)生命周期函數(shù),將他的生命周期細(xì)化了。

Activity生命周期結(jié)構(gòu)圖

首先看到的事onCreate()函數(shù),顧名思義這個(gè)函數(shù)在Activity開始創(chuàng)建時(shí)調(diào)用,可以在其中定義一些初始化操作。接下來(lái)是 onStart()方法,這個(gè)方法在Activity開始被執(zhí)行時(shí)調(diào)用,它緊隨onCreate()方法之后調(diào)用,接著是onResume()方法,這個(gè) 方法對(duì)我們來(lái)說(shuō)算是比較陌生的,這個(gè)方法是在該Activity或得用戶輸入焦點(diǎn)時(shí)被調(diào)用,這個(gè)或得用戶輸入焦點(diǎn)有點(diǎn)不好理解,如果我們用過(guò) Android手機(jī)或者其他系統(tǒng)的手機(jī)時(shí),經(jīng)常會(huì)看到有些窗口雖然能看到但無(wú)法對(duì)他進(jìn)行操作,這時(shí)的Activity就沒(méi)有或得用戶焦點(diǎn)。當(dāng)這個(gè)方法調(diào)用 后Activity開始真正的運(yùn)行了,在Activity正在運(yùn)行時(shí)用戶激活了另一個(gè)Activity,這時(shí)將調(diào)用***個(gè)Activity的 onPause()方法,可以理解為***個(gè)Activity被暫停了,這個(gè)時(shí)候如果系統(tǒng)的內(nèi)存不夠用,***個(gè)Activity的進(jìn)程可能被停止(何時(shí)被停 止是由系統(tǒng)決定的,不需要我們參入),當(dāng)下次我們?cè)龠\(yùn)行***個(gè)Activity時(shí)就需要重新創(chuàng)建這個(gè)Activity,那就又需要調(diào)用 onCreate()方法。如果在這個(gè)Activity沒(méi)有被停止的情況下,我們重新調(diào)用***個(gè)Activity,就會(huì)直接調(diào)用它的onResume() 方法后開始運(yùn)行。如果***個(gè)Activity很久都沒(méi)有得到再次運(yùn)行機(jī)會(huì),就會(huì)調(diào)用onStop()被停止,這時(shí)如果Activity又或得用戶輸入焦 點(diǎn),就會(huì)調(diào)用onRestart()方法,重新開始執(zhí)行這個(gè)Activity,或者被系統(tǒng)停止,否則調(diào)用onDestroy()方法銷毀 Activity。其實(shí)在實(shí)際開發(fā)中我們很少會(huì)用到所有的生命周期函數(shù),但我們要弄清它的原理,在使用時(shí)知道所以然就行了。

下面來(lái)看一個(gè)實(shí)例

***個(gè)Activity的布局文件(main.xml):

Xml代碼

  1. <?xml version="1.0" encoding="utf-8"?>   
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   
  3.     android:orientation="vertical"   
  4.     android:layout_width="fill_parent"   
  5.     android:layout_height="fill_parent"   
  6.     >   
  7. <TextView     
  8.     android:layout_width="fill_parent"    
  9.     android:layout_height="wrap_content"    
  10.     android:text="@string/hello"   
  11.     />   
  12. <Button   
  13.     android:id="@+id/myButton"   
  14.     android:layout_width="fill_parent"   
  15.     android:layout_height="wrap_content"   
  16.     android:text="@string/first_button"   
  17.     />   
  18. </LinearLayout>   

第二個(gè)Activity的布局文件(Second.xml):

Xml代碼

  1. <?xml version="1.0" encoding="utf-8"?>   
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"   
  3.       package="mars.activity05"   
  4.       android:versionCode="1"   
  5.       android:versionName="1.0">   
  6.     <application android:icon="@drawable/icon" android:label="@string/app_name">   
  7.         <activity android:name=".FirstActivity"   
  8.                   android:label="@string/app_name">   
  9.             <intent-filter>   
  10.                 <action android:name="android.intent.action.MAIN" />   
  11.                 <category android:name="android.intent.category.LAUNCHER" />   
  12.             </intent-filter>   
  13.         </activity>   
  14.         <activity android:name=".SecondActivity"   
  15.                   android:label="SecondActivity"   
  16.                   android:theme="@android:style/Theme.Dialog"/>   
  17.    
  18.     </application>   
  19.     <uses-sdk android:minSdkVersion="4" />   
  20.    
  21. </manifest>    

FirstActivity.java:

Java代碼

  1. package mars.activity05;   
  2.    
  3. import android.app.Activity;   
  4. import android.content.Intent;   
  5. import android.os.Bundle;   
  6. import android.view.View;   
  7. import android.view.View.OnClickListener;   
  8. import android.widget.Button;   
  9.    
  10. public class FirstActivity extends Activity {   
  11.     /** Called when the activity is first created. */   
  12.     private Button myButton;   
  13.    
  14.     @Override   
  15.     public void onCreate(Bundle savedInstanceState) {   
  16.         System.out.println("FirstActivity ---> onCreate   ");   
  17.         super.onCreate(savedInstanceState);   
  18.         setContentView(R.layout.main);   
  19.         myButton = (Button) findViewById(R.id.myButton);   
  20.         myButton.setOnClickListener(new ButtonListener());   
  21.     }   
  22.    
  23.     @Override   
  24.     protected void onDestroy() {   
  25.         // TODO Auto-generated method stub   
  26.         System.out.println("FirstAcvity --->onDestory");   
  27.         super.onDestroy();   
  28.     }   
  29.    
  30.     @Override   
  31.     protected void onPause() {   
  32.         // TODO Auto-generated method stub   
  33.         System.out.println("FirstAcvity --->onPause");   
  34.         super.onPause();   
  35.     }   
  36.    
  37.     @Override   
  38.     protected void onRestart() {   
  39.         // TODO Auto-generated method stub   
  40.         System.out.println("FirstAcvity --->onRestart");   
  41.         super.onRestart();   
  42.     }   
  43.    
  44.     @Override   
  45.     protected void onResume() {   
  46.         // TODO Auto-generated method stub   
  47.         System.out.println("FirstAcvity --->onResume");   
  48.         super.onResume();   
  49.     }   
  50.    
  51.     @Override   
  52.     protected void onStart() {   
  53.         // TODO Auto-generated method stub   
  54.         System.out.println("FirstAcvity --->onStart");   
  55.         super.onStart();   
  56.     }   
  57.    
  58.     @Override   
  59.     protected void onStop() {   
  60.         // TODO Auto-generated method stub   
  61.         System.out.println("FirstAcvity --->onStop");   
  62.         super.onStop();   
  63.     }   
  64.    
  65.     class ButtonListener implements OnClickListener {   
  66.    
  67.         @Override   
  68.         public void onClick(View v) {   
  69.             // TODO Auto-generated method stub   
  70.             Intent intent = new Intent();   
  71.             intent.setClass(FirstActivity.this, SecondActivity.class);   
  72.             FirstActivity.this.startActivity(intent);   
  73.         }   
  74.    
  75.     }   
  76.    
  77. }   

SecondActivity.java:

Java代碼

  1. package mars.activity05;   
  2.    
  3. import android.app.Activity;   
  4. import android.content.Intent;   
  5. import android.os.Bundle;   
  6. import android.view.View;   
  7. import android.view.View.OnClickListener;   
  8. import android.widget.Button;   
  9.    
  10. public class SecondActivity extends Activity{   
  11.    
  12.     private Button secondButton;   
  13.        
  14.     @Override   
  15.     protected void onCreate(Bundle savedInstanceState) {   
  16.         System.out.println("SecondActivity--->onCreate");   
  17.         // TODO Auto-generated method stub   
  18.         super.onCreate(savedInstanceState);   
  19.         setContentView(R.layout.second);   
  20.         secondButton = (Button)findViewById(R.id.secondButton);   
  21.         secondButton.setOnClickListener(new ButtonListener());   
  22.     }   
  23.    
  24.     @Override   
  25.     protected void onDestroy() {   
  26.         // TODO Auto-generated method stub   
  27.         System.out.println("SecondActivity--->onDestory");   
  28.         super.onDestroy();   
  29.     }   
  30.    
  31.     @Override   
  32.     protected void onPause() {   
  33.         // TODO Auto-generated method stub   
  34.         System.out.println("SecondActivity--->onPause");   
  35.         super.onPause();   
  36.     }   
  37.    
  38.     @Override   
  39.     protected void onRestart() {   
  40.         // TODO Auto-generated method stub   
  41.         System.out.println("SecondActivity--->onRestart");   
  42.         super.onRestart();   
  43.     }   
  44.    
  45.     @Override   
  46.     protected void onResume() {   
  47.         // TODO Auto-generated method stub   
  48.         System.out.println("SecondActivity--->onResume");   
  49.         super.onResume();   
  50.     }   
  51.    
  52.     @Override   
  53.     protected void onStart() {   
  54.         // TODO Auto-generated method stub   
  55.         System.out.println("SecondActivity--->onStart");   
  56.         super.onStart();   
  57.     }   
  58.    
  59.     @Override   
  60.     protected void onStop() {   
  61.         // TODO Auto-generated method stub   
  62.         System.out.println("SecondActivity--->onStop");   
  63.         super.onStop();   
  64.     }   
  65.    
  66.     class ButtonListener implements OnClickListener{   
  67.    
  68.         @Override   
  69.         public void onClick(View v) {   
  70.             // TODO Auto-generated method stub   
  71.             Intent intent = new Intent();   
  72.             intent.setClass(SecondActivity.this, FirstActivity.class);   
  73.             SecondActivity.this.startActivity(intent);   
  74.         }   
  75.            
  76.     }   
  77. }   

 

責(zé)任編輯:佚名 來(lái)源: iteye
相關(guān)推薦

2010-01-26 13:20:02

Android Act

2013-12-26 15:26:48

Android SDKActivity生命周期

2021-08-24 07:53:28

AndroidActivity生命周期

2015-07-08 16:28:23

weak生命周期

2022-04-19 07:20:24

軟件開發(fā)安全生命周期SSDLC應(yīng)用安全

2017-07-04 09:49:36

ActivityAndroidLife場(chǎng)景

2010-01-26 17:00:31

Android生命周期

2010-07-14 10:48:37

Perl線程

2009-06-11 11:28:35

JSF生命周期

2014-04-16 13:31:27

AndroidFragment多屏幕支持

2013-07-29 05:11:38

iOS開發(fā)iOS開發(fā)學(xué)習(xí)類的'生命周期'

2012-01-16 09:00:56

線程

2009-06-17 15:06:50

Hibernate實(shí)體

2019-10-16 10:50:13

Linux內(nèi)核測(cè)試

2009-06-18 13:32:39

Java線程生命周期

2012-04-28 13:23:12

Java生命周期

2010-02-06 10:42:41

Android Ser生命周期

2012-06-20 10:29:16

敏捷開發(fā)

2009-06-24 10:47:55

JSF生命周期

2013-08-19 17:03:00

.Net生命周期對(duì)象
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 黄色毛片大全 | 欧美精品久久久久 | 久久精品国产免费 | 久久久久久久久久久久久久av | 91高清免费 | 精品无码三级在线观看视频 | 蜜桃av一区二区三区 | 成人18亚洲xxoo | 在线观看国产精品视频 | 欧美在线国产精品 | 在线视频成人 | 亚洲激情在线观看 | 成人国产免费观看 | 亚洲二区精品 | 国产成人在线一区 | 欧美精品在欧美一区二区少妇 | 国产区精品| 免费精品| 夜夜爽99久久国产综合精品女不卡 | 最新日韩在线 | 国产在线高清 | 超碰欧美| 9999视频| 国产精品久久亚洲 | 91免费电影 | 欧美精品一区二区在线观看 | 国产视频福利一区 | 日韩免费在线 | 伊人免费观看视频 | 久久久久国产一区二区三区四区 | 日韩精品一区二区三区老鸭窝 | 亚洲综合婷婷 | 久久成人精品视频 | 国产日韩欧美中文字幕 | www.9191.com | 精品综合久久久 | 国产精品视频免费观看 | 成人亚洲精品 | av高清毛片 | 韩日在线 | 欧美极品少妇xxxxⅹ免费视频 |