在android中显式和隐式访问activity的简单例子

显式访问activity只要在Intent的构造方法里指定activity的类名,比较直观,容易理解,而且显式方式一般用于打开同一个应用中的其它activity窗口。
java代码如下

Intent intent = new Intent(this,MyActivity.class);
startActivity(intent);

通过显式方式也能跨应用访问activity,只要知道另一个应用Package Name和想访问的activity的类名就行,因为每一个android应用的唯一标识就是Package Name ,也就是AndroidManifest.xml里<manifest>标签的package的属性值。具体方法可以参照李宁老师的《android权威开发指南(第二版)》第六章


隐式访问activity就是通过给定的action和category和data来查找符合过滤要求的activity,如果找不到,则会抛异常

其实就是在项目的AndroidManifest.xml文件中给想访问的activity加上一个或者多个过滤器,每一个<intent-filter></intent-filter>标签就是一个过滤器,在标签里定义好过滤规则。其中<action>标签是必须的,<action>标签可以是一个或者多个;<category>标签也可以是多个,不过如果不指定其它的category一般加上默认的category,就是

<category android:name="android.intent.category.DEFAULT" />
<data>标签是可选的。

例子如下,这里的过滤器只是指定了<action>再加上默认的<category>而已

<activity
   android:name="com.atggdsai.testintent.MainActivity2"
   android:label="@string/title_activity_main_activity2" >
   <intent-filter>
      <action android:name="android.intent.action.MYACTION" />
      <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>


Intent intent = new Intent("android.intent.action.MYACTION");
startActivity(intent);

如果过滤器中只是指定了默认的category则在java代码中可以不用调用intent.addCategory()方法

 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值