Android开发之入口Activity
Adnroid App是如何确定入口Activity的?
难道就因为class的类名叫MainActivity,布局文件叫activity_main.xml?
如果这样认为,就大错特错了。
之所以能够确定入口Activity,是因为在应用的清单文件中有所配置,系统会根据应用的清单文件(AndroidManifest.xml)来确立.
如何确立,标志是什么?
我们来看一下清单文件,便一目了然:
对了,系统能够确立就是因为红线标注的意图过滤器intent-filter
系统会在清单文件中访问所有的intent-filter,直到发现如下代码:
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
根据其所在activity的name,找到需要启动的activity的实体类。
那我们能否定义两个入口Activity呢?
答案是肯定的。我们不妨来试验一下,再次新建一个Activity,命名为SecondActivity,并在清单文件中注册该activity,同样将其意图过滤器设置为主activity
如图所示:
另外,我们还会发现一个有趣的现象:
是不是发现,启动一个应用生成了两个图标,是的,每个入口activity都会相应的生成一个图标,与之对应。
当我们点击Test图标的时候,会进入MainActivity,但我们点击SecondActivity图标的时候会进入SecondActivity,也就是说一个应用有两个入口,这样明显是不好的,我们应当严格规定,只能有一个入口activity,莫要奇葩行事!!!