隐式启动Activity 报ActivityNotFoundException
16lz
2021-12-04
隐式启动Activity:
1. 创建一个Activity子类---SubActivity
2. 在Android Manifest中添加如下:
3.启动此Activity的代码:
运行程序,点击相应的按钮执行上面启动代码,抛出ActivityNotFoundException 异常。
4.解析:
因为 startActivity 会给itent 添加一个Category类别:android.intent.category.DEFAULT
在注册文件(manifest)中遍历时不仅要匹配 intent.setAction("android.intent.action.view");
intent.addCategory("android.intent.category.liuwei");中声明的的action和Catetory。还要匹配默认添加的Category:android.intent.category.DEFAULT
所以在manifest中需要如此声明:
1. 创建一个Activity子类---SubActivity
2. 在Android Manifest中添加如下:
<activity android:name=".subActivity"> <intent-filter> <action android:name="android.intent.action.view"/> <category android:name="android.intent.category.liuwei"/> </intent-filter> </activity>
3.启动此Activity的代码:
Intent intent=new Intent(); intent.setAction("android.intent.action.view"); intent.addCategory("android.intent.category.liuwei"); this.startActivity(intent);
运行程序,点击相应的按钮执行上面启动代码,抛出ActivityNotFoundException 异常。
4.解析:
因为 startActivity 会给itent 添加一个Category类别:android.intent.category.DEFAULT
在注册文件(manifest)中遍历时不仅要匹配 intent.setAction("android.intent.action.view");
intent.addCategory("android.intent.category.liuwei");中声明的的action和Catetory。还要匹配默认添加的Category:android.intent.category.DEFAULT
所以在manifest中需要如此声明:
<activity android:name=".subActivity"> <intent-filter> <action android:name="android.intent.action.view"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.liuwei"/> </intent-filter> </activity>
更多相关文章
- 如何进行Android单元测试
- Android模拟器无法启动
- Android(安卓)7.0 app代码修改抓包
- android studio 3.1 Android(安卓)Device Monitor 新的启动方式
- 【Android】在任何View上添加红点★★★★★★★
- 启动模式详解
- Android(安卓)启动流程
- eclipse 启动 Android(安卓)SDK Content Loader 异常
- Android添加单元测试的方法与步骤