四大元件 活動

2022-09-06 11:27:20 字數 2874 閱讀 5227

活動(activity),是乙個應用元件,用於顯示介面並使用者進行互動。

分為四種啟動模式,分別是 "standard"、"singletop"、"singletask"、"singleinstance"、

我們需要在清單檔案中標籤中的 android:launchmode 屬性來配置啟動模式,如

(1) standard

這個是預設啟動模式。

以這種方式啟動活動每次都會建立乙個新的例項。

建立的活動都會入棧,並處於棧的頂端位置。

(2)singletop

當啟動活動時發現棧頂端已經是該活動,則直接使用該活動,並呼叫該例項的onnewintent()方法向其傳送intent,而不會再建立新的活動例項。 如果該活動不是在棧頂位置時,則還是會建立新的例項。

(3)singletask

以這種方式啟動活動,每次系統都回去返回棧中檢查是否存在該活動的例項,如果已經存在則直接使用該例項,並把這個活動之上的所有活動都出棧。如果沒有發現則會建立乙個新的例項。

(4)singleinstance

指定為singleinstance模式的活動會啟用乙個新的返回棧來管理這個活動。

保證無論從那個task啟動activity都這會建立乙個activity例項,並將它假如到新的task 棧頂。

當建立乙個活動mainactivity:

08-30 14:54:13.745 3154-3154/? d/mainactivity: oncreate: 

08-30 14:54:13.745 3154-3154/? d/mainactivity: onstart:

08-30 14:54:13.745 3154-3154/? d/mainactivity: onresume:

當從mainactivity 跳轉到 secondactivity

08-30 14:57:44.429 3154-3154/com.tiger.intenttest d/mainactivity: onpause: 

08-30 14:57:44.454 3154-3154/com.tiger.intenttest d/secondactivity: oncreate:

08-30 14:57:44.454 3154-3154/com.tiger.intenttest d/secondactivity: onstart:

08-30 14:57:44.455 3154-3154/com.tiger.intenttest d/secondactivity: onresume:

08-30 14:57:45.078 3154-3154/com.tiger.intenttest d/mainactivity: onstop:

3.從secondactivity通過back鍵返回到 mainactivity

08-30 14:59:53.554 7583-7583/com.tiger.intenttest d/secondactivity: onpause: 

08-30 14:59:53.556 7583-7583/com.tiger.intenttest d/mainactivity: onrestart:

08-30 14:59:53.556 7583-7583/com.tiger.intenttest d/mainactivity: onstart:

08-30 14:59:53.556 7583-7583/com.tiger.intenttest d/mainactivity: onresume:

08-30 14:59:53.883 7583-7583/com.tiger.intenttest d/secondactivity: onstop:

08-30 14:59:53.883 7583-7583/com.tiger.intenttest d/secondactivity: ondestroy:

比如說有這樣乙個情況,在mainactivity中有乙個edittext,你已經輸入的了資料,然後你跳轉到secondactivity中,過了一會由於系統記憶體不足,mainactivity被**,那麼當我們再返回到mainactivity中時會再建立乙個新的manactivity,我們在edittext輸入的內容也會消失。

這時候我們就用到了ons**einstancestate() onrestoreinstancestate()

這個方法在活動被**之前一定會呼叫。

通常來說,跳轉到其他activity或者是點選home鍵都會執行該方法。 還有就是當:鎖屏、螢幕方向切換

activity可以用鍵值對集合來儲存狀態資訊。這個方法會預設實現儲存有關activity檢視層次的狀態資訊,例如edittext中的文字,或者listview的滾動位置。

@override

protected void ons**einstancestate(bundle outstate)

這個方法只有在活動確實被系統銷毀後,才會執行。 另外也可以寫在oncreate()方法中,不過需要判斷下s**edinstancestate是否為null。

@override

protected void onrestoreinstancestate(bundle s**edinstancestate)

super.onrestoreinstancestate(s**edinstancestate);

}

四大元件(四) content provider

content provider相當於是程式與程式之間的介面。讓原本不可能通訊的程式,通過內容提供者這個橋梁變得可以通訊。定義乙個類 繼承 contentprovider public class backdoor extends contentprovider 註冊contentprovider ...

android 四大元件

1.activity 2.service 3.contentprovider 應用中的資料,對外進行共享,其它應用可以通過內容提供者,可以訪問到你應用中的資料,對資料進行增刪改查 1 對不同的資料格式,統一了檔案格式和資料訪問api 2 內容提供者要繼承contentprovider類 3 在清單檔...

Android 四大元件

activity intent receiver service content provider 並不是每乙個android應用程式都需要這四種構造塊,這不是必須的。當我們明確了我們的應用需要哪些構造塊後,我們就需要在androidmanifest.xml中登記這些構造塊的清單。這個配置檔案用於定...