activity啟動方式

2021-07-26 18:36:10 字數 2020 閱讀 7764

activity的啟動分為:顯示啟動和隱式啟動

顯示啟動:明確的指定乙個activity進行啟動

隱式啟動:只有合適的activity才可以啟動

什麼是合適?

當標籤內的內容與intent的設定相同時

intent.setaction("htl");

intent.addcategory("")

intent.setdata(uri.parse(""));

有三種內容,如果進行設定,必須有 action, category

android:name="htl"/>

android:name="android.intent.category.default"/>

android:scheme="cc"

android:mimetype="text/fds"/>

或android:scheme="cc"/>

android:mimetype="text/fds"/>

intent-filter>

標籤可以配置一下內容:scheme://host:port/intent/a.html

- android:scheme

用於指定資料的協議部分。如:https。如果沒有指定,url無效。

- android:host

用於指定資料的主機名部分。如:www.baidu.com。如果沒有指定,url無效。

- android:port

用於指定資料的埠部分,一般緊隨在主機名之後。

- android: path、pathpattern 和 pathprefix

用於指定主機名和埠之後的部分,如一段**中跟在網域名稱之後的內容。這三個引數都是表示路徑資訊。

path: 表示匹配完整的路徑 /intent/a.html ,只有與 path 完全相同才能匹配

pathpattern: 表示用表示式匹配完整的路徑,但與 path 相比,它裡面可以包含萬用字元和轉義符

萬用字元號:

- 『』表示0個或者多個任意字元。如:『a』,可以匹配為『a』,』aa』,』aaa』;

- 『.』表示任意字元 .如『.』,可以匹配『a』,』b』,』c』

轉義符:

『』寫成 『\』

『*』寫成 『\\』

pathprefix: 表示匹配路徑的字首資訊。/intent

5. android:mimetype

用於指定可以處理的資料型別,允許使用萬用字元的方式進行指定。

一般只需要指定scheme的內容就可以了。

當還需要新增minetype(傳遞的資料型別)內容時,如果

intent.setdata(uri.parse("cc:10086"));

intent.settype("text/fds");

啟動失敗,無論setdate()還是settype()在前,後面的都會清理掉前面的設定,所以,正確的啟動方式是

intent.setdataandtype(uri.parse("cc:10086"),"text/fds");
當等待啟動的activity有多個action,多個data時,只需要同時滿足一條action和data就可以正常啟動.

intent 中設定的 category 必須全部在 intent-filter 中包含,但可以不設定category.

//可以得到指定的資料

intent intent = getintent();

intent.getscheme();

uri uri = intent.getdata();

uri.getpath();

uri.getquery();

Activity四種啟動方式

啟動模式簡單地說就是activity啟動時的策略,在androidmanifest.xml中的標籤的android launchmode屬性設定 啟動模式有4種,分別為standard singletop singletask singleinstance 講解啟動模式之前,有必要先講解一下 任務棧...

activity的啟動方式簡單總結

activity的啟動模式 1.普通啟 standard 在棧中 不管有沒有本activity,都會建立新的activity放到棧頂.2.singletop 棧頂已經存在本activity的例項,則不再建立直接復用,否則建立本activity例項放在棧頂.3.singletask 如果棧中有本act...

Activity的幾種啟動跳轉方式

一.顯示呼叫方法 intent intent new intent this,otheractivity.class 方法1 intent intent2 new intent intent2.setclass this,otheractivity.class 方法2 intent2.setclas...