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...