1.在屏幕点击应用
lunch会将该点击事件包装成一个intent,该intent包含两个参数,这两个参数对应到应用中的AndroidManifest.xml文件中的<intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
应用接收到这两个参数后,会与AndroidManifest.xml文件中的<intent-filter>做匹配,匹配成功后找到当前所在的<activity中的name属性,启动name对应的activity
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
对应java代码中的
public class MainActivity extends Activity {
找到activity后,首先执行
onCreate方法
<span style="font-family:Verdana, Arial, Helvetica, sans-serif;color:#393939;"><span style="line-height: 21px;"> protected void onCreate(Bundle savedInstanceState) {
</span></span><div style="text-indent: 28px;"><span style="color: rgb(57, 57, 57); font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 21px;"> super.onCreate(savedInstanceState);//</span><span style="color: rgb(57, 57, 57); font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 21px;">MainActivity 父类的onCreate方法,主要包含一些</span><span style="color: rgb(57, 57, 57); font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 21px;">Activity基本功能,比如基本页面的绘制等等</span><span style="font-family:宋体;color:#333333;"><span style="line-height: 28px; background-color: rgb(250, 247, 239);">,Activity子类一定要调用,确保定义的Activity子类功能正常,其实所有的activity生命周期方法都需要先调用父类的方法</span></span></div><span style="font-family:Verdana, Arial, Helvetica, sans-serif;color:#393939;"><span style="line-height: 21px;"> /*activity_main=activity_main.xml*/
setContentView(R.layout.activity_main);//设置Activity显示的布局文件
}</span></span>
这边的R文件是编译的时候自动生成的,可以理解成将工程中所有的资源都在R文件中注册一下。
除了onCreate方法,Activity启动时还需要执行其它的方法OnStart->OnResumer 然后activity才会处于run状态,我们的代码可以添加到这些方法中,比如我们可以在onCreate绑定某项服务