31 顯示隱式跳轉activity

2021-07-26 14:46:14 字數 2032 閱讀 5707

安卓中經常涉及到activity的跳轉,跳轉怎麼樣在安卓中實現呢,如下。

隱式跳**直接設定setaction,setdata的跳轉

顯示跳**直接設定setclass的跳轉的型別和包名

入口activity有下面的**,只要activity有下面的**,就會建立乙個圖示。預設圖示是一樣的

可以通過android:lable=「」來設定圖示的名字。

如果activity所在的包跟應用包名同名,則可以不寫。

完整的清單中的配置如下:

隱式跳轉和顯示跳轉

顯示跳轉到activity

顯示跳轉中清單檔案需要新增下面的配置

**中的實現如下

/*

* 跳轉到本應用中的activity

* 顯示跳**直接指定目標activity的包名和類名

*/public void click2(view v)

隱式跳轉到activity

intent-filter意圖過濾器中有3個引數action,category,data。action和data可以配置多個。category是系統的配置,action中的name是自己隨便定義的,定義好以後name的值就是activity的動作,隱式啟動activity時,意圖中的配置必須和這裡的action的name是一致的。data是跳轉的過程中攜帶的引數,mimetype是攜帶的資料的型別,根據意圖過濾器中中的配置,跳轉中針對data的配置需要做不同的處理。

注意的是:intent-filter可以有多個,這樣隱式跳轉的時候可以有多種匹配的方式

**中的實現如下

注意:當清單檔案中有scheme和mimetype都有的時候,在邏輯**中setdata在settype之前,settype會清除setdata裡面的資料,同樣,當settype在setdata之前的時候,setdata會清除settype的資料。因此當scheme和mimetype都有的時候,應該使用setdataandtype

/*

* 隱式跳轉到撥secondactivity

*/public void click5(view v)

activity中獲取到傳遞的引數的方法:

package com.ldw.activityto;

import android.content.intent;

import android.net.uri;

import android.os.bundle;

public class secondactivity extends activity

}

如何選擇哪一種啟動方式:啟動同乙個應用中的activity適合用顯示,啟動不同應用中的activiy適合用隱式。全部使用隱式是完全沒有問題的,使用顯示的效率更高一些。當系統中有多個activity與意圖設定的action匹配,那麼啟動activity時,會彈出對話方塊,裡面包含匹配的activity。

打**應用的配置

/*

* 跳轉到打**activity

* 隱式跳**通過制定action和data來跳轉

*/public void click1(view v)

/** 顯示跳轉到撥號器

*/public void click3(view v)

啟動瀏覽器的方式

/*

* 顯示跳轉到瀏覽器

*/public void click6(view v)

/** 隱式跳轉到瀏覽器

*/public void click7(view v)

android 顯式 隱式啟動activity

android啟動activity分為顯式啟動和隱式啟動。顯式啟動時,指定被啟動activity類,系統啟動被指定的activity類。隱式啟動時,指定action category,系統會拿action category去androidmanifest.xml中匹配,匹配的activity啟動。某...

安卓 隱式跳轉 Intent 與顯示跳轉的區別

顯示跳 intent inten new intent mainactivity.this,main2activity.class startactivity intent 隱式跳 intent intent new intent com.example startactivity intent 隱...

06 Activity隱式跳轉

一,隱式跳轉 某個activity 需要在清單檔案配置某個activity如下資訊 注意 category要和action一起用 action 制定乙個活動 在隱式跳轉的可以用到 category 這個activity 的型別 可以附加 指明動作的環境 一些資訊告訴系統 比如 告訴程式該activi...