2014-12-02 31 views
0

我試圖從Activity類跟蹤registerReceiver()來了解流程的流程。從Activity.java跟蹤到ActivityManagerServices

我相信這個調用將以ActivityManagerService.registerReceiver()結束。

從我的理解來看,它應該涉及一個對SystemService的請求,因爲ActivityManagerService存在於SystemService中。 問題是,我無法追蹤從Activity.java到ActivityManagerService的代碼執行流程。

從developer.android.com:

java.lang.Object 
    ↳ android.content.Context 
     ↳ android.content.ContextWrapper 
      ↳ android.view.ContextThemeWrapper 
       ↳ android.app.Activity 

我一直在尋找所有類以上追查registerReceiver()的實施,但無法找到請求ActivityManagerService的systemservice的代碼。

希望有人可以解釋ActivityManagerService是如何觸發的。

謝謝。

回答

0

找到谷歌組的答案。

由於活動和ContextThemeWrapper沒有實現registerReceiver(), 將達到ContextWrapper:

ContextWrapper.registerReceiver() [mBase in ContextWrapper is ContextImpl] 
    ContextImpl.registerReceiver() 
     ActivityManagerNative.registerReceiver() 
      >> go through binder to 
      ActivityManagerService.registerReceiver()