隐式启动Activity 报ActivityNotFoundException
16lz
2021-01-23
隐式启动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代码实现自动打开USB调试
- android典型代码系列(一)------android调试
- Android 动画框架代码分析
- Android 7.0 app代码修改抓包
- android延续按两次返回退出程序(完整代码)
- Android 实现在Java代码中修改UI界面,并修改界面
- JS调用Java代码(Android)
- 【Android】Android Layout Binder——根据layout布局文件自动生
- Android应用程序进程启动过程的源代码分析(2)