以前经常习惯了使用intent.setClass()来启动其他Activity,对使用intent的setAction()方法了解不多,今天试了一下,总结如下:
使用setAction时,如果没有同时使用 intent.addCategory()方法,那么目标Activity的category默认为android.intent.category.DEFAULT,如果在AndroidManifest .xml中声明目标Activity时没有设置其category的属性值为android.intent.category.DEFAULT,此时就会报错。
我认为出现错误的原因是:本用方法启动目标Activity,系统是通过action和category来唯一确定一个Activity的,如果声明目标Activity时没有明确其action和category属性值,就不能唯一确定一个Activity,此时就会报错。