【Android学习笔记】 Intent(6)Intent filter

Intent filter (过滤器)

AndroidManifest.xml file

创建project时,默认的filter

<intent-filter>
   <action android:name="android.intent.action.MAIN" />
   // 主入口
   <category android:name="android.intent.category.LAUNCHER" />
   //top-level item 
</intent-filter>

新建一个 Intent filter

<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" android:host="developer.android.com" />

包含 action ,category ,data 三项
在这里插入图片描述
其中data可忽略

   <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="http" 
                                android:host="developer.android.com" />
        </intent-filter>
    </activity>

在 MainActivity 中设置 Intent

@Override
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Intent intent = getIntent();
        Uri uri = intent.getData();
        if (uri != null) {
            String uri_string = getString(R.string.uri_label)
                   + uri.toString();
            TextView textView = findViewById(R.id.text_uri_message);
            textView.setText(uri_string);
        }
}

其中

String uri_string = "URI: " + uri.toString();
// 一个URl 对象

猜你喜欢

转载自blog.csdn.net/qq_39782872/article/details/86674470