(Android入門)Android四大組件

     最近在做一個Android的小項目,由於沒有太系統學過安卓,只是跟了一門MOOC實現了幾個例子,所以在使用的過程中一直會出現一些意想不到的錯誤。

就從這兩天來說,需要實現一個將自己的APP替換掉鎖屏的功能,才發現自己連Activity與Service之間通訊這樣簡單的東西都不瞭解,甚至於連四大組件各自功能是什麼都不太清楚。爲了打牢自己的基礎,所以決定寫下一些自己的理解。


----------------------------------

1.activity   
一個activity代表一個帶有用戶界面的屏幕


一個程序可以有多個activity分別用於不同的功能,通過Intent進行通訊


2.services
service是一段可以可以隱藏在後臺的長生命週期組件。可以遠程監控其他運行過程,而且沒有用戶界面。
service的使用需要兩步:1 在androidmainfast中<application>標籤中註冊相應的服務
                                2 繼承Service類
服務不能自己運行,需要通過Contex.startService()或Contex.bindService()啓動服務
想停止服務要調用Context.stopService(),此時系統會調用onDestory(),使用此方法啓動時,服務首次啓動系統先調用服務的onCreate()-->onStart(),如果服務已經啓動再次調用只會觸發onStart()方法


3.BroadcastReceiver
你的應用可以使用它對外部事件進行過濾只對感興趣的外部事件(如當電話呼入時,或者數據網絡可用時)進行接收並做出響應。廣播接收器沒有用戶界面。它們可以啓動一個activity或serice 來響應它們收到的信息,或者用NotificationManager 來通知用戶。
聽廣播Intent步驟:


1 寫一個繼承BroadCastReceiver的類,重寫onReceive()方法,廣播接收器僅在它執行這個方法時處於活躍狀態。當onReceive()返回後,它即爲失活狀態,注意:爲了保證用戶交互過程的流暢,一些費時的操作要放到線程裏,如類名SMSBroadcastReceiver


2註冊該廣播接收者,註冊有兩種方法程序動態註冊和AndroidManifest文件中進行靜態註冊(可理解爲系統中註冊)


比如說,我現在提到的替換屏幕解鎖,需要在關閉屏幕時候喚醒一個Activity,就需要重新註冊:


BroadcastReceiver mMasterResetReceiever = new BroadcastReceiver(){
			
			public void onReceive(Context context,Intent intent){
				try{
					Intent i = new Intent();
					i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
					i.setClass(context,MainActivity.class);
					
					context.startActivity(i);
				}catch(Exception e){
					
				}
			}
		};


4Content Provider


ContentProvider把應用中的數據共享給其他應用訪問,其他應用可以通過ContentProvider對指定應用中的數據進行操作。

android中提供ContectResolver與ContentProvider來操作別的應用程序的數據。ContentProvider使用URI來唯一標識其數據集,這裏的URI以content://作爲前綴,表示該數據由ContentProvider來管理。


提供一個參考博客:http://www.cnblogs.com/pepcod/archive/2013/02/11/2937403.html



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章