将getCallingActivity的活动与另一个活动进行比较

问题描述:

我想将调用活动与其他人进行比较,以了解哪个人称为当前活动。我想:将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

如果活动是从其他活动的结果开始的,则可以按以下方式比较调用活动。

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