2013-04-10 56 views
4

我想將調用活動與其他人進行比較,以瞭解哪個人稱爲當前活動。我想:將getCallingActivity的活動與另一個活動進行比較

getCallingActivity().getClassName().toString().equals(MainActivity.class.toString()) 

它不通過呼叫意圖傳遞價值的工作,但,我們如何能夠比較使用getCallingActivity()getCallingPackage()類?

+1

你有沒有想過這個? – tokudu 2014-02-13 20:34:23

+0

嘿@JerecTheSith你是如何解決這個問題的? – 2016-08-12 07:29:55

+1

嘿@HarinKaklotar你可能想查看一下,我不記得我在2013年是如何做到的:http://www.programcreek.com/java-api-examples/index.php?class=android.app .Activity&method = getCallingActivity – 2016-08-12 08:55:45

回答

4

如果活動是從其他活動的結果開始的,則可以按以下方式比較調用活動。

if (getCallingActivity().getClassName().equals(MainActivity.class.getName())) { 

      /* here the main activity is calling activity*/ 

    }else{ 

      /*other activity is calling activity*/ 
    } 
+0

嘿,我嘗試這個邏輯,但它給了我這樣的exaption:試圖調用虛擬方法'java.lang.String android.content.ComponentName.getClassName()'null對象引用 – 2016-08-12 07:28:16

+0

確實你開始活動的結果?? if(getCallingActivity()。getClassName()。equals(PlayerActivity.class.getCanonicalName())) code = 100;如果不是那麼'getCallingActivity()'將返回null,這將導致空指針 – 2016-08-12 07:35:26

+0

if else { code = isPlaylist.equals(「True」)? 100:200; } setResult(code,in); – 2016-08-12 07:36:15

相關問題