隐式代码举例

隐式代码举例



场景介绍:在MainActivity中有一个按钮,点击按钮后,会进行隐式Intent匹配,最后寻找到并激活OtherActivity.


情况1:


[html]  view plain  copy
  1. <activity  
  2.        android:name=".OtherActivity"  
  3.        android:label="OtherActivity" >  
  4.        <intent-filter>  
  5.            <action android:name="com.xiazdong.action" />  
  6.            <category android:name="android.intent.category.DEFAULT" />  
  7.            <category android:name="com.xiazdong.category" />  
  8.            <data  
  9.                android:host="www.xiazdong.com"  
  10.                android:scheme="xiazdong"/>  
  11.        </intent-filter>  
  12. </activity>  

则代码为:

[java]  view plain  copy
  1. Intent intent = new Intent();  
  2. intent.setAction("com.xiazdong.action");  
  3. intent.addCategory("com.xiazdong.category");  
  4. intent.setData(Uri.parse("xiazdong://www.xiazdong.com/xia"));  
  5. startActivity(intent);      //此方法中调用intent.addCategory("android.intent.category.DEFAULT");  



情况2:


在<data>中多了一个android:mimeType="text/*",此时不能使用intent.setData,而要使用intent.setDataAndType();

[html]  view plain  copy
  1. <activity  
  2.      android:name=".OtherActivity"  
  3.      android:label="OtherActivity" >  
  4.          <intent-filter>  
  5.          <action android:name="com.xiazdong.action" />  
  6.          <category android:name="android.intent.category.DEFAULT" />  
  7.          <category android:name="com.xiazdong.category" />  
  8.          <data  
  9.             android:host="www.xiazdong.com"  
  10.             android:scheme="xiazdong" android:mimeType="text/*"/>  
  11.     </intent-filter>  
  12. </activity>  

代码为:

[java]  view plain  copy
  1. Intent intent = new Intent();  
  2. intent.setAction("com.xiazdong.action");  
  3. intent.addCategory("com.xiazdong.category");  
  4. intent.setDataAndType(Uri.parse("xiazdong://www.xiazdong.com/xia"), "text/plain");  //匹配了text/*  
  5. startActivity(intent);      //此方法中调用intent.addCategory("android.intent.category.DEFAULT");  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值