将 getCallingActivity 的活动与另一个活动进行比较
Posted
技术标签:
【中文标题】将 getCallingActivity 的活动与另一个活动进行比较【英文标题】:Compare activity from getCallingActivity to another 【发布时间】:2013-04-02 13:50:46 【问题描述】:我想将调用活动与其他活动进行比较,以了解哪个活动调用了当前活动。我试过了:
getCallingActivity().getClassName().toString().equals(MainActivity.class.toString())
它不起作用,除了在调用Intent中传递一个值,我们如何使用getCallingActivity()
或getCallingPackage()
比较类?
【问题讨论】:
你有想过这个吗? 嘿@JerecTheSith 你是怎么解决这个问题的? 嘿 @HarinKaklotar 你可能想看看这个,我不记得我在 2013 年是怎么做到的:programcreek.com/java-api-examples/… 感谢@JerecTheSith 【参考方案1】:如果activity是从另一个activity启动的,你可以通过以下方式比较调用activity。
if (getCallingActivity().getClassName().equals(MainActivity.class.getName()))
/* here the main activity is calling activity*/
else
/*other activity is calling activity*/
【讨论】:
嘿,我试试这个逻辑,但它给了我这样的扩展:尝试在空对象引用上调用虚拟方法'java.lang.String android.content.ComponentName.getClassName()' 你开始活动是为了结果吗??如果不是,那么getCallingActivity()
将返回 null 这将导致空指针
if (getCallingActivity().getClassName().equals(PlayerActivity.class.getCanonicalName())) 代码 = 100;否则 代码 = isPlaylist.equals("True") ? 100:200; setResult(code, in);
使用getName()
而不是getCanonicalName()
在这里查看区别***.com/questions/15202997/…
那么活动没有开始为结果。以startActivityForResult
开头,然后一切都会好起来的以上是关于将 getCallingActivity 的活动与另一个活动进行比较的主要内容,如果未能解决你的问题,请参考以下文章