在Android应用程式宣告活动课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《在Android应用程式宣告活动课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android 应用 程式 宣告 活动 课件
- 资源描述:
-
1、5-1 活動類別的基礎活動類別的基礎 n 5-1-1 Context抽象類別 n 5-1-2 Activity活動類別 5-1-1 Context抽象類別抽象類別-類別架構類別架構n Android應用程式是由活動、服務、內容提供者和廣播接收器四大元件組成,它們都是在同一個應用程式的Context物件中執行,即上一節Activity元件所在的方框。n Context類別是一個抽象類別,其類別架構如下圖所示:5-1-1 Context抽象類別抽象類別-取得取得Context物件物件n 在目前Activity活動類別可以使用getBaseContext()方法(此為繼承自ContextWrappe
2、r類別的方法)取得Context物件,如下所示:Context context=getBaseContext();n 因為Activity類別是繼承Context抽象類別的子類別,所以在繼承Activity的類別也可以直接使用this取得此活動的Context物件。5-1-1 Context抽象類別抽象類別-應用程式層級的操作應用程式層級的操作n 啟動活動、服務和註冊廣播接收器:使用startActivity()方法啟動其他活動、startService()方法啟動服務和registerReceiver()方法註冊廣播接收器。n 取得應用程式資源:使用getResources()方法取得資源,
3、例如:字串資源的字串內容,即在strings.xml定義的值。n 存取偏好設定:使用getSharedPreferences()方法存取應用程式的偏好設定,例如:遊戲的設定和最高分等。n 請求系統服務:使用getSystemService()方法請求系統服務,例如:定位服務。n 管理應用程式的檔案與資料庫:使用openFileInput()和openFileOutput()方法建立讀取和寫入檔案,openorCreateDatabase()方法建立資料庫。5-1-2 Activity活動類別活動類別-類別架構類別架構n Activity活動類別是Android應用程式的核心,使用者唯一注意到的
4、元件,因為大部分活動都會與使用者互動,我們建立Android應用程式大都是在定義和實作每一個螢幕畫面的活動類別。n Activity類別架構如下圖所示:5-1-3 Activity活動類別活動類別 FragmentActivity和和AppCompatActivity子類別子類別n 在Activity類別之下是FragmentActivity和AppCompatActivity子類別(這2個是支援特定功能的Activity活動類別)屬於支援函數庫(Support Library)的基礎活動類別,其主要目的是為了相容舊版Android作業系統,讓舊版一樣可以支援新版增加的功能,如下所示:Frag
5、mentActivity:使用Fragment片段的活動基礎類別,可以在執行API 4以上的Android作業系統新增Fragment片段。如果活動需要使用Fragment片段,就是繼承此活動類別。AppCompatActivity:預設擁有動作列(ActionBar)的活動基礎類別,可以在執行API 7以上的Android作業系統新增位在螢幕上方的工具列,如果活動需要顯示上方工具列,就是繼承此活動類別。5-1-3 Activity活動類別活動類別-新增活動新增活動n 在Android應用程式新增活動就是建立Activity類別,因為Activity類別只是一個空視窗的原型,我們需要繼承Act
6、ivity類別來擴充視窗的功能,例如:在支援動作列的活動新增使用介面,如下所示:public class MainActivity extends AppCompatActivity /覆寫相關方法 5-1-3 Activity活動類別活動類別-啟動活動啟動活動n Android應用程式有多種方法來啟動活動,其簡單說明如下所示:在Manifest檔宣告Android應用程式第一個進入的活動(相當於程式的進入點,即Java語言的main()主程式)。使用覆寫ContentWrapper物件的startActivity()方法啟動活動。使用Activity物件的startActivityForRe
7、sult()方法啟動活動。5-1-3 Activity活動類別活動類別 在在Android應用程式宣告活動應用程式宣告活動(內容內容)n 在AndroidManifest.xml檔案的application子元素可以宣告應用程式擁有的活動,例如:第2章Ch2_3專案的AndroidManifest.xml檔案,XML標籤application元素的內容,如下所示:5-1-3 Activity活動類別活動類別 在在Android應用程式宣告活動應用程式宣告活動(說明說明)n activity子元素宣告應用程式擁有的活動,在intent-filter子元素定義此活動需要回應哪些操作或動作,2個子元
8、素的簡單說明,如下所示:action元素:屬性值android.intent.action.MAIN表示此活動是Android應用程式的進入點,也就是說,當使用者執行此應用程式,回應的操作就是執行此活動。category元素:屬性值android.intent.category.LAUNCHER表示將程式置於啟動器的安裝程式清單中,我們可以在清單中看到安裝的程式圖示。啟動與關閉活動啟動與關閉活動n 啟動:startActivity(intent)n 啟動(須回傳結果):startActivityForResult(intent,int)n 關閉:finish()11處理介面相關方法處理介面相關
9、方法n 依資源索引值顯示介面:setContentView(int)n 在活動顯示參數之介面setContentView(view)n 依資源索引值尋找介面:findViewById(int)125-2 活動的生命周期活動的生命周期 n 5-2-1 活動堆疊 n 5-2-2 活動的生命周期 n 5-2-3 管理活動的狀態5-2-1 活動堆疊活動堆疊n 對於在Android作業系統啟動中的眾多活動來說,系統是使用一個活動堆疊(Activity Stack)來管理這些活動。如同餐廳廚房的工人清洗餐盤,將洗好的餐盤疊在一起,每一個洗好的餐盤放在這疊餐盤的頂端,如下圖所示:5-2-2 活動的生命周期活
10、動的生命周期 圖例圖例n 活動的生命周期簡單的說就是活動的狀態管理,屬於活動管理員(Activity Manager)的主要工作,它負責建立、釋放和管理眾多的活動。對於活動的生命周期來說,我們重視的是不同狀態之間的轉換,而不是目前位在哪一個狀態,如下圖所示:5-2-2 活動的生命周期活動的生命周期 啟動狀態啟動狀態啟動狀態n 當Android應用程式不在記憶體中時,執行程式就是進入啟動狀態,在依序呼叫onCreate()、onStart()和onResume()方法後,就進入執行狀態。5-2-2 活動的生命周期活動的生命周期 執行狀態執行狀態執行狀態n 活動位在執行狀態表示它目前在螢幕上顯示且
11、與使用者進行互動,對比Windows作業系統,就是視窗取得焦點(Focus),Android作業系統在任何時間都只會有一個位在執行狀態的活動。n 一般來說,執行狀態的活動擁有最高權限使用記憶體與資源來提昇程式的執行效率,以便更快回應使用者的操作。5-2-2 活動的生命周期活動的生命周期 暫停狀態暫停狀態暫停狀態n 暫停狀態是指活動沒有取得焦點,沒有與使用者互動,但是仍然顯示在螢幕上,這並非活動的正常情況,通常是因為顯示對話方塊,對話方塊不會佔用整個螢幕,所以背後的活動仍然看的見,此時就會呼叫onPause()方法,從執行狀態轉換至暫停狀態。n 暫停狀態的活動仍然擁有最高的權限,因為它隨時都會呼
12、叫onResume()方法回到執行狀態。5-2-2 活動的生命周期活動的生命周期 停止狀態停止狀態停止狀態n 停止狀態的活動仍然保留在記憶體之中,只是使用者看不到它。Android作業系統之所以將活動保留在記憶體,因為使用者有可能不久就會再返回此活動,而且從停止狀態回到執行狀態,比起從啟動狀態轉換至執行狀態耗費較少的資源。5-2-2 活動的生命周期活動的生命周期 移除狀態移除狀態移除狀態n 移除狀態的活動表示已經釋放活動佔用的資源,活動已經刪除且不存在記憶體之中。活動管理員會依據記憶體的使用情況,決定活動是否需要刪除,以便空出更多記憶體空間來讓執行狀態的活動能夠正常的運作。5-2-3 管理活動
13、的狀態管理活動的狀態-管理活動的狀態管理活動的狀態n 在活動整個生命周期中共有7個回撥方法會在活動的狀態轉換時呼叫,這些方法就是開發者回應狀態改變,撰寫所需Java程式碼的地方,如下圖所示:5-2-3 管理活動的狀態管理活動的狀態-回撥方法回撥方法n 按 AltEnter可開啟匯入事件方法之視窗-選Import class 匯入 Log類別n 插入事件方法:開啟 Java程式檔,游標移在適當處,然後點擊Code/Override Methods-開啟Select Methods to Override/Implement視窗235-2-3 管理活動的狀態管理活動的狀態-onCreate()回撥
14、方法回撥方法n 在活動類別的7個回撥方法之中,只有onCreate()方法有參數,筆者準備使用此方法為例來進一步說明回撥方法的基本架構,如下所示:public void onCreate(Bundle savedInstanceState)super.onCreate(savedInstanceState);setContentView(R.layout.main);5-2-3 管理活動的狀態管理活動的狀態-匯入匯入Android SDK套件套件n 當在Java程式使用Android SDK現成的API類別時,我們需要匯入所屬套件的類別完整名稱,以本節MainActivity.java為例,在
15、程式開頭需要匯入3個類別,如下所示:import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;n 上述程式碼使用import關鍵字匯入指定類別,這些是Android API提供的類別,一些馬上可以使用的現成類別,其說明如下所示:匯入第1個類別:因為類別繼承AppCompatActivity類別。匯入第2個類別:因為onCreate()方法的參數是Bundle物件。匯入第3個類別:因為使用Log類別方法顯示訊息。5-3 活動的佈景與方向活動的佈景與方向n 5-3
16、-1 更改活動使用的佈景n 5-3-2 鎖定活動方向n 5-3-3 切換鎖定活動的方向5-3-1 更改活動使用的佈景更改活動使用的佈景 說明說明n Android應用程式的活動視窗外觀預設是使用系統佈景,動作列是位在螢幕最上方,我們可以使用佈景(Theme)更改視窗屬性,佈景是一種外觀樣式,可以套用在整個Android應用程式或特定的活動來更改外觀。5-3-1 更改活動使用的佈景更改活動使用的佈景 在在AndroidManifest.xml檔案套用佈景檔案套用佈景1n 在AndroidManifest.xml檔案的標籤,可以使用android:theme屬性來套用佈景,如下所示:.5-3-1
17、更改活動使用的佈景更改活動使用的佈景 在在AndroidManifest.xml檔案套用佈景檔案套用佈景2n style/AppTheme屬性值是參考res/valuse下的styles.xml樣式檔的資源,如下所示:color/colorPrimary color/colorPrimaryDark color/colorAccent5-3-1 更改活動使用的佈景更改活動使用的佈景 使用使用Android平台的內建佈景平台的內建佈景1n 在Android平台提供兩種基礎的活動佈景,擁有預設佈景色彩的配色,如下表所示:5-3-1 更改活動使用的佈景更改活動使用的佈景 使用使用Android平台的
18、內建佈景平台的內建佈景2n 不只如此,在平台佈景之後可以加上樣式常數是指定細部樣式,如下表所示:5-3-1 更改活動使用的佈景更改活動使用的佈景 範例範例n 例如:Android Studio專案的預設值是淡色系的佈景配色加上深色系的工具列,如下所示:Theme.AppCompat.Light.DarkActionBarn Android Studio專案Ch5_3_1的styles.xml樣式檔已經更改套用的佈景,如下所示:.5-3-2 鎖定活動方向鎖定活動方向-說明說明n 對於一些Android遊戲程式來說,我們可能需要鎖定活動方向為橫向(Landscape),以方便遊戲進行;某些程式需要
19、鎖定成直向(Portrait),我們可以在AndroidManifest.xml檔案的標籤新增android:screenOrientation屬性,屬性值portrait是直向;landscape是橫向,如下所示:5-3-2 鎖定活動方向鎖定活動方向-圖例圖例n Android Studio專案Ch5_3_2只是在AndroidManifest.xml檔案加上android:screenOrientation屬性值landscape,執行結果可以看到活動鎖定成橫向,如右圖所示:5-3-3 切換鎖定活動的方向切換鎖定活動的方向-說明說明n Android應用程式有時可能需要切換鎖定活動的方向,
20、我們可以新增Button元件來切換活動方向。在Android是呼叫Activity類別的setRequestedOrientation()方法來鎖定活動方向,如下所示:setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);n 上述程式碼切換鎖定方向成直向,參數是整數常數值(即android.content.pm.ActivityInfo類別常數)。切換鎖定成橫向只是參數值不同,如下所示:setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)
展开阅读全文