App啟動(三)Activity的建立

2021-10-07 11:18:39 字數 2026 閱讀 6870

private

final

boolean

int pid)

catch

(exception e)..

....

if(normalmode)

}catch

(exception e)}.

....

.return

true

;}

boolean

throws remoteexception

}catch

(remoteexception e)..

.return didsomething;

}

接下來是realstartactivitylocked方法

final

boolean

realstartactivitylocked

(activityrecord r,

boolean andresume,

boolean checkconfig)

throws remoteexception

catch

(remoteexception e)..

....

return

true

;}

@override

public

final

void

schedulelaunchactivity

(intent intent, ibinder token,

int ident,

activityinfo info, configuration curconfig, configuration overrideconfig,

compatibilityinfo compatinfo, string referrer, ivoiceinteractor voiceinteractor,

int procstate, bundle state, persistablebundle persistentstate,

list

pendingresults, list

pendingnewintents,

boolean notresumed,

boolean isforward, profilerinfo profilerinfo)

private

void

handlelaunchactivity

(activityclientrecord r, intent customintent)

else

}

實際的activity建立是交給performlaunchactivity方法處理的

private activity performlaunchactivity

(activityclientrecord r, intent customintent)

catch

(exception e)

tryelse..

....

}catch

(supernotcalledexception e)

return activity;

}

實際建立activity這裡還是使用instrumentation的物件,而minstrumentation.newactivity方法跟

方法一樣用反射建立出activity

建立出activityperformlaunchactivity方法開始使用minstrumentation呼叫activity的聲oncreate生命週期

activity啟動流程 App啟動流程三問

裡面涉及到哪些重要的成員呢?都分別負責了什麼,比如ams?啟動流程了解後,對我們開發有什麼幫助呢?1 比如啟動優化,分析啟動過程,其實可以優化啟動速度的地方有三個地方 activity的oncreate方法,同樣進行執行緒處理,懶載入。或者預建立activity,提前類載入等等。2 又比如外掛程式化...

啟動其他APP的Activity

這個是另外乙個應用程式的包名,這個引數是要啟動的activity componentname componetname new componentname com.example.testtask com.example.testtask.main2activity try catch except...

Activity的啟動模式

關於activity的啟動模式,有四種 1.standard 預設的啟動模式,每次都建立新的例項 2.singletop 在棧頂就重用 被重用了會呼叫onnewintent intent intent 否則建立新的例項 3.singletask 在棧中就重用 被重用了會呼叫onnewintent i...