2011-07-03 17 views
0

アクティビティが特定のアクティビティによってトリガされたことを確認できますか?アクティビティが特定のアクティビティによってトリガされたかどうかを確認します。

たとえば、2つのアクティビティー、アクティビティーAおよびアクティビティーB、およびインテントを使用してBをトリガーするBがあります。 (活動Bが活動Aによってトリガた)

+0

そのうちの1人が助けられた場合は、回答を受け入れてください(http://stackoverflow.com/faq#howtoask)。 – thegrinner

答えて

1
{ //何か を行う}場合

:そして今、私は活動Bにいることを、私は活動Bが同じように、活動Aによってトリガーされたことを確認したいです

テントを作成するときに、あなたのような、いくつかの情報を渡すことができます:

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"); 

私はStringsが好きですが、Object、int、またはそれを識別するために使用できるものを交互に渡すことができます。

+0

呼び出し元のアクティビティをインテントに入れようとしても、コードを保存して、startActivityをstartActivityForResultに変更するだけで、結果が期待されなくても変更できます。いずれにしても、呼び出されたアクティビティが誰であるかを知ることができる呼び出しアクティビティです。 – Spidy

2

現在の活動を開始したアクティビティの名前を取得するために

getCallingActivity(); 

を使用することができます。しかし、なぜこの機能が必要なのかを考えなければなりません。ほとんどのアクティビティは疎結合である必要があります。

+3

"注:呼び出し元のアクティビティが結果を期待していない場合(要求コードを含むstartActivityForResult(Intent、int)フォームを使用していない場合)、呼び出し元のパッケージはnullになります。 – CommonsWare

関連する問題