只有当Activity向外声明了自己是可以处理某些intent action时,第三方app才能通过intent去启动它
https://segmentfault.com/q/1010000003749035
只有当Activity向外声明了自己是可以处理某些intent action时,第三方app才能通过intent去启动它。
通过配置文件中的intent过滤器来声明:
<activity android:name=".Activity_A" >
<intent-filter >
<action android:name="android.intent.action.VIEW"/>
</intent-filter>
</activity>
当知道了package name和class name,可以这样去启动第三方的activity:
Intent i = new Intent("android.intent.action.VIEW");
String pkg = "me.li2.test";
String cls = "me.li2.test.Activity_A";
i.setComponent(new ComponentName(pkg, cls));
startActivity(i);
这样做是没问题的。但假如没有在manifest中声明,startActivity将导致崩溃。你可以写两个app做个测试,添加、去掉intent声明。

浙公网安备 33010602011771号