2016-07-19 59 views
1

我有我的項目在調試模式下,我在Activity1中放置了一個斷點。 。然而,當項目的執行在這個中斷點停止時,我需要找出哪個Activity或類叫做Activity1。如何在Android Studio中查找活動的調用類?

我試圖通過Android studio documentation尋找,我沒有找到如何。

+0

據我所知,有沒有辦法在Android SDK方面做到這一點。歡迎您自己爲'Intent'做些事情來幫助區分它們,例如在'Intent'上額外添加一個名爲'startActivity()'的人。然後,您可以查看'Activity1'通過'getIntent()'獲取的'Intent',以確定哪個活動啓動了它。 – CommonsWare

回答

0

如果您只想知道您正在查看的活動,則可以通過查看Logcat輕鬆完成。打開logcat的窗口(AndroidMonitor - > logcat的)

搜索ActivityManager

你wull得到下面的日誌

07-19 15:42:04.064 606-632/system_process I/ActivityManager:顯示 com.android.dialer /。 DialtactsActivity: + 674ms

在這種情況下,我啓動了電話應用程序。

但是,如果你簡單地想要放一段代碼,只有當這個活動從一個特定的地方發起時才執行,那麼你可以做這樣的事情。

當您啓動活動時,請輸入此代碼。

Intent intent = new Intent(context, Activity1.class); 
intent.putExtra("ENABLE_XXX_CODE", true); 

在你想要把啓用一些邏輯,這個特殊的流活動:

boolean isEnabled = savedInstanceState.getString("ENABLE_XXX_CODE"); 
if(isEnabled) 
{ 
//Your logic goes here. 
} 
0

你不能在默認情況下做到這一點,這是爲什麼:

Android的目的是爲一個鬆散耦合的應用程序生命週期,這意味着在自己的每一個ActivityServiceBroadcastReceiver生活。它們可以從Intent開始,該IntentContext發送到系統架構中,然後啓動新組件。因此,在斷點堆棧跟蹤中不會看到Intent的來源,只是一些通用的系統調用。

爲了看到調用Activity的內容,您需要向調用Intent添加一些額外的數據。你不喜歡這樣:

intent.putExtra("SOME_KEY", someValue); 

然後在onCreate()你讀它是這樣的:

if(savedInstanceState != null) { 
    String source = savedInstanceState.getString("SOME_KEY"); 
} 

如果發件人稱衡源,在這裏你會擁有它:-)

作爲一個方面說明,你通常不會想知道什麼開始Activity。上述代碼將被使用的唯一真實情況是您希望傳遞給Activity的一些參數來配置它。除此之外,每個Activity都是並且應該是一個獨立的實體:-)

相關問題