2011-07-03 91 views
0

是否可以检查活动是否由特定活动触发。检查活动是否由特定活动触发

例如,我有2个活动,活动A和活动B和A使用意图触发B.而现在,我在活动B,我要检查活动B由活动A,被触发,如:

如果(活动B是由活动触发) {// 做一些 }

+0

如果其中一个帮助,请[接受](http://stackoverflow.com/faq#howtoask)一个答案。 – thegrinner

回答

1

在创建意图,你可以传递一些信息,如:

Intent intent = new Intent(this, ActivityB.class); 
intent.putExtra("com.mypackage.triggeredby", "ActivityA"); 

而且在ActivityB的onCreate或者的onResume,你然后说:

Intent data = getIntent(); 
triggeredBy = data.getStringExtra("com.mypackage.triggeredby"); 

我喜欢字符串,但是你可以交替传递对象,或者一个int,或者任何你可以用来识别它的东西。

+0

如果您打算将调用活动置于意图之中,那么不妨将自己的一些代码保存下来,并将startActivity更改为startActivityForResult,即使没有预期结果。无论哪种方式,它的调用活动,让被叫活动知道它是谁。 – Spidy

2

您可以使用

getCallingActivity(); 

来获取开始的当前活动的活动的名称。但是你应该考虑为什么你需要这个功能。大多数活动应该是松散耦合的。

+3

“注意:如果调用活动不期待结果(即它没有使用包含请求代码的startActivityForResult(Intent,int)表单),则调用包将为空。 – CommonsWare

相关问题