欢迎来到天天文库
浏览记录
ID:38527561
大小:70.50 KB
页数:8页
时间:2019-06-14
《解析Activity中的onCreate方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、解析Activity中的onCreate方法我们在写一个自己的Activity的时候需要注意:1、都必须extendsActivity(或者其子类);2、必须在方法onCreate中存在一条这样的语句:super.onCreate(也就是调用Activity的onCreate方法),对于super.onCreate方法放的位置要求不是很高,只要被调用了就可以了,super.onCreate主要是加载一些组件。如下面:importandroid.app.Activity;importandroid.os.Bundle;publicclassTargetActivityextendsActi
2、vity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){//TODOAuto-generatedmethodstubsuper.onCreate(savedInstanceState);setContentView...}}需要引起注意的是:1、参数BundlesavedInstanceState来自何处?2、为何super.onCreate(savedInstanceState)语句的缺失会带给应用致命要害。也许熟悉源码的会发现,其实在Instrumentation类中的方法callActivityOnCreate方法
3、,前面的调用过程略过,主要是在ActivityThread的方法performLaunchActivity中调用了Instrumentation类中的方法callActivityOnCreate方法,继而调用了TargetActivity中的onCreate方法。步骤:1、在ActivityThread中的方法performLaunchActivity调用了mInstrumentation.callActivityOnCreate(activity,r.state);2、Instrumentation类中的方法callActivityOnCreate方法,源码如下:/***Perform
4、callingofanactivity's{@linkActivity#onCreate}method.The*defaultimplementationsimplycallsthroughtothatmethod.* *@paramactivity*Theactivitybeingcreated.*@paramicicle*Thepreviouslyfrozenstate(ornull)topassthroughto*onCreate().*/publicvoidcallActivityOnCreate(Activityactivity,Bundleicicle){if(mWaitin
5、gActivities!=null){synchronized(mSync){finalintN=mWaitingActivities.size();for(inti=0;i6、???activity引用是TargetActivity对象activity.performCreate(icicle);if(mActivityMonitors!=null){synchronized(mSync){finalintN=mActivityMonitors.size();for(inti=0;i7、le),其中的方法是通过activity,这个activity,形如:Activityactivity=子Activity的对象(其实也就是Java中的一种多态形式)。在Activity类中的方法performCreate(icicle),源码如下:finalvoidperformCreate(Bundleicicle){onCreate(icicle);mVisibleFromClient=!mWindow.getWindowSt
6、???activity引用是TargetActivity对象activity.performCreate(icicle);if(mActivityMonitors!=null){synchronized(mSync){finalintN=mActivityMonitors.size();for(inti=0;i7、le),其中的方法是通过activity,这个activity,形如:Activityactivity=子Activity的对象(其实也就是Java中的一种多态形式)。在Activity类中的方法performCreate(icicle),源码如下:finalvoidperformCreate(Bundleicicle){onCreate(icicle);mVisibleFromClient=!mWindow.getWindowSt
7、le),其中的方法是通过activity,这个activity,形如:Activityactivity=子Activity的对象(其实也就是Java中的一种多态形式)。在Activity类中的方法performCreate(icicle),源码如下:finalvoidperformCreate(Bundleicicle){onCreate(icicle);mVisibleFromClient=!mWindow.getWindowSt
此文档下载收益归作者所有