将 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 的活动与另一个活动进行比较的主要内容,如果未能解决你的问题,请参考以下文章

片段 - 如何将它们与需要操作的活动一起使用?

将 Butterknife 与 BaseActivity/Child 活动和 MaterialDrawer 一起使用

无法将与当前打开页面匹配的活动类添加到菜单列表项

活动形状模型:将模型点与目标点匹配

如何将营销活动广告与 iOS 应用安装相关联

将“活动”类添加到与当前单击的侧边栏菜单链接相同的 href