安卓开发之隐式意图与显示意图

package com.lidaochen.test;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    // 显示意图
    // 点击按钮生成一个Activity
    public void click (View v)
    {
        // 创建意图对象, 意图就是我要完成一件事
        Intent intent = new Intent(this, TestActivity.class);
        // 开启Activity
        startActivity(intent);
    }

    // 点击按钮生成一个Activity
    public void click1(View v)
    {
        // 创建意图对象,意图就是我要完成一件事
        Intent intent = new Intent();
        // 设置包名和类名  packageName:当前应用的包名
        intent.setClassName("com.lidaochen.test", "com.lidaochen.test.TestActivity");
        // 开启Activity
        startActivity(intent);
    }

    // 隐式意图
    public void click2(View v)
    {
        // 创建意图对象,意图就是我要完成一件事
        Intent intent = new Intent();
        // 设置跳转的动作
        intent.setAction("com.lidaochen.Test2Activity");
        // 设置类别
        intent.addCategory("android.intent.category.DEFAULT");
        // 设置数据
       // intent.setData(Uri.parse("aaa:" + "我是你爷爷!"));
       // 设置数据类型
        // intent.setType("lidaochen");
        // 如果setData和setType方法一起使用的时候应该使用下面这个方法
        intent.setDataAndType(Uri.parse("aaa:" + "Hello World!"), "aa/bb");
        // 开启Activity
        startActivity(intent);
    }
}
package com.lidaochen.test;

import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;

import java.net.URI;

public class Test2Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test2);
        // 获取MainActivity传递过来的数据
        Intent intent = getIntent();
        //  获取数据
        Uri data = intent.getData();
        String scheme = data.getScheme();
        //  显示数据
       Toast.makeText(getApplicationContext(), "" + data, Toast.LENGTH_SHORT).show();
       Toast.makeText(getApplicationContext(), "" + scheme, Toast.LENGTH_SHORT).show();
    }
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.lidaochen.test">

    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".TestActivity" />
        <activity android:name=".Test2Activity">
            <intent-filter>
                <action android:name="com.lidaochen.Test2Activity"></action>
                <category android:name="android.intent.category.DEFAULT"></category>
                <data android:mimeType="aa/bb"
                    android:scheme="aaa"/>
            </intent-filter>
        </activity>
    </application>

</manifest>
原文地址:https://www.cnblogs.com/duxie/p/10986957.html