意图
一、MainActivity
package com.shz.testintent; import android.app.Activity; import android.app.ActionBar; import android.app.Fragment; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.os.Build; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void click1(View view) { // 显式意图:必须要指定开启组件的具体信息(包名,组件名,组件的class) // cmp=com.android.browser/.BrowserActivity Intent intent = new Intent(); intent.setClassName("com.android.browser", "com.android.browser.BrowserActivity"); startActivity(intent); } public void click2(View view) { // 隐式意图:描述动作的行为 Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(Uri.parse("http://www.baidu.com")); startActivity(intent); } public void click3(View view) { // 隐式意图:描述动作的行为 // 比如:饭后泡红茶(“泡”是行为,“茶”是数据,“红”是类型,“饭后”是附加信息) Intent intent = new Intent(); // 指定行为 intent.setAction("com.shz.myintent"); // 指定行为需要使用的数据与类型 intent.setDataAndType(Uri.parse("shz:我是自定义的隐式意图"), "vnd.android.cursor.item/hehe"); // 附加信息:比如该意图可能是在车载系统中才可以使用,一般指定为默认 intent.addCategory("android.intent.category.DEFAULT"); startActivity(intent); } }
二、
package com.shz.testintent; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.widget.TextView; public class SecondActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.second_activity); TextView tvMsg = (TextView) this.findViewById(R.id.tvMsg); Intent intent = this.getIntent(); Uri uri = intent.getData(); tvMsg.setText(uri.toString()); } }
三、AndroidManifest
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.shz.testintent" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.shz.testintent.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.shz.testintent.SecondActivity" android:label="@string/app_name" > <intent-filter> <action android:name="com.shz.myintent" /> <data android:scheme="shz" android:mimeType="vnd.android.cursor.item/hehe"/> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> </application> </manifest>