Android Intent 隱式
阿新 • • 發佈:2018-10-13
應該 abcd 其他 html 防止 code .com activity and
隱式intent
xml
<!--在意圖過濾器中--> <intent-filter> <action android:name="android.intent."/> <category android:name="android.intent.category.DEFAULT"/> <data android:mimeType="application/person"/> <data android:scheme="" android:host=""> </intent-filter> <!--android:action category URI和數據類型 -->
一個android(理解為匹配機制)中可以定義0-1個action,0-n個category, 0-1個data
一個intent-filter中可以定義多個action,category,data
MainActivity 中
1.setAction
Intent intent = new Intent();
intent.setAction("abcdefg");
startActivity(intent);
2.構造方法直接設置
Intent intent = new Intent("abcdefg");
startActivity(intent);
有幾點需要註意:
1、 這個Activity其他應用程序也可以調用,只要使用這個Action字符串。這樣應用程序之間交互就很容易了,例如手機QQ可以調用QQ空間,可以調用騰訊微博等。
因為如此,為了防止應用程序之間互相影響,一般命名方式是包名+Action名,例如這裏命名"abcdefg"就很不合理了,就應該改成"com.example.app016.MyTest"。
2、 當然,你可以在自己的程序中調用其他程序的Action。 例如可以在自己的應用程序中調用撥號面板:
Intent intent = new Intent(Intent.ACTION_DIAL); // 或者Intent intent = new Intent("android.intent.action.DIAL"); // Intent.ACTION_DIAL是內置常量,值為"android.intent.action.DIAL" startActivity(intent);
參考
Android Intent 隱式