android 跳转到其他应用的特殊方法

      常用方式就不详说了,无非是显式和隐式跳转。现在要说的是非常特殊的一种,经过查看intent的内部源码发现:intent有成员ComponentName,此类接受包名和类名两个字段作为参数。平时使用的显式调用即是这种方式的一种特殊调用

       显式调用:

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

       特殊调用:

       Intent intent = new Intent(“com.call.app”, "com.call.app.TestActivity");
       startActivity(intent);

    需要注意的是,TestActivity作为另一个应用里面的activity,能否调用成功,取决于AndroidManifest文件的下方属性 是否为 true

   android:exported

Activity 是否可由其他应用的组件启动 —“ true”表示可以,“ false”表示不可以。若为“ false”,则 Activity 只能由同一应用的组件或使用同一用户 ID 的不同应用启动。

默认值取决于 Activity 是否包含 Intent 过滤器。没有任何过滤器意味着 Activity 只能通过指定其确切的类名称进行调用。 这意味着 Activity 专供应用内部使用(因为其他应用不知晓其类名称)。 因此,在这种情况下,默认值为“false”。另一方面,至少存在一个过滤器意味着 Activity 专供外部使用,因此默认值为“true”。

该属性并非限制 Activity 对其他应用开放度的唯一手段。 您还可以利用权限来限制哪些外部实体可以调用 Activity(请参阅 permission 属性)。



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值