1. 程式人生 > >Android 隱士跳轉幾種方式

Android 隱士跳轉幾種方式

1、只有 配置 action 進行跳轉

<intent-filter>
    <action android:name="testarouter"></action>
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>
Intent intent = new Intent();
intent.setAction("testarouter");
startActivity(intent);

 

2、只附帶 category 跳轉

<intent-filter>
    <action android:name="testarouter"></action>
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.INFO" />
</intent-filter>
Intent intent = new Intent();
intent.setAction("testarouter");
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.addCategory(Intent.CATEGORY_INFO);
startActivity(intent);

3、只附帶 data 跳轉

//注:setData、setDataAndType、setType 這三種方法只能單獨使用,不可共用
3.1、
<intent-filter>
    <action android:name="testarouter"></action>
    <category android:name="android.intent.category.DEFAULT" />
    <data
        android:path="/testrpouter"
        android:scheme="x1"
        tools:ignore="AppLinkUrlError" />
</intent-filter>

Intent intent = new Intent();
intent.setAction("testarouter");
Uri uri = Uri.parse("x1:/testarouter");
intent.setData(uri);
startActivity(intent);

3.2、
<intent-filter>
    <action android:name="testarouter"></action>
    <category android:name="android.intent.category.DEFAULT" />
    <data
        android:path="/testarouter"
        android:scheme="x1"
        android:mimeType="text/plain"
        tools:ignore="AppLinkUrlError" />
</intent-filter>

Intent intent = new Intent();
intent.setAction("testarouter");
Uri uri = Uri.parse("x1:/testarouter");
intent.setDataAndType(uri, "text/plain");
startActivity(intent);

3.3、
<intent-filter>
    <action android:name="testarouter"></action>
    <category android:name="android.intent.category.DEFAULT" />
    <data
        android:mimeType="text/plain"
        tools:ignore="AppLinkUrlError" />
</intent-filter>

Intent intent = new Intent();
intent.setAction("testarouter");
intent.setType("text/plain");
startActivity(intent);