Compare activity from getCallingActivity to another
我想将呼叫活动与其他活动进行比较,以了解哪个活动调用了当前活动。我试过:
1
| getCallingActivity().getClassName().toString().equals(MainActivity.class.toString()) |
它不起作用,除了在调用意图中传递一个值,我们如何比较使用getCallingActivity()或getCallingPackage()的类?
- 你知道吗?
- 嘿@jerecthesith你是怎么解决这个问题的?
- 嘿,HarinKaklotar,你可能想检查一下,我不记得我是如何在2013返回的:StudioCek.com/Java API示例/和Helip;
- 谢谢@jerecthesith
如果该活动是为另一个活动的结果而启动的,则可以按以下方式比较调用活动。
1 2 3 4 5 6 7 8
| 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()将返回空值,这将导致空指针。
- if(getCallingActivity().getClassName().equals(playerActivity.c‌&8203;lass.getCanonicalNam‌&8203;e())code=100;else code=isplayList.equals("true")?100:200;setresult(code,in);
- 使用getName()而不是getCanonicalName()参见stackoverflow.com/questions/15202997/&hellip中的区别;
- 我也试过但同样的错误
- 如果getCallingActivity未返回空值,则尝试记录。
- 它还提供空值:(
- 然后,不会为结果启动活动。从startActivityForResult开始,一切都会好起来的
- 谢谢,现在我的问题解决了:)