activity 隐式调用 。也是通过intent 启动。
代码如下
Intent intent = new Intent("myaction");
intent.addCategory("mycategory");
startActivity(intent);
如不想外部调用action =myaction的activity的 请在
总体来说它的主要作用是:是否支持其它应用调用当前组件。
默认值:如果包含有intent-filter 默认值为true; 没有intent-filter默认值为false。
Mainifest.xml 配置如下
<?xml version="1.0" encoding="utf-8"?><application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".Main2Activity">
<intent-filter>
<action android:name="myaction"/>
<category android:name="mycategory"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
顺便多谢2句
在出现 android.content.ActivityNotFoundException: No Activity found to handle Intent 这个错误时,请注意在添加 category 的自定义值时。必须加上其category默认值 。就是
通过包名启动第三方引用
一、使用Intent的setComponent方法
二、使用包管理器
一、使用Intent的setComponent方法
Intent intent = new Intent();
intent.setComponent(new ComponentName(“包名”, “包名.主類名”));
intent.setAction(Intent.ACTION_VIEW);
startActivity(intent);
二、使用包管理器
Intent intent = new Intent();
intent = getPackageManager().getLaunchIntentForPackage(“包名”);
startActivity(intent);