我有很多活動。他們每個人都有一個意圖,指的是同一個活動。有沒有辦法找出哪個意圖開始了活動?如何檢查哪個Intent啓動了該活動?
4
A
回答
15
嘗試爲:
Intent intent = new Intent();
intent.setClass(A.this,Receiveractivity.class);
intent.putExtra("Uniqid","From_Activity_A");
A.this.startActivity(intent);
Intent intent = new Intent();
intent.setClass(B.this,Receiveractivity.class);
intent.putExtra("Uniqid","From_Activity_B");
B.this.startActivity(intent);
Intent intent = new Intent();
intent.setClass(C.this,Receiveractivity.class);
intent.putExtra("Uniqid","From_Activity_C");
C.this.startActivity(intent);
,並在的onCreate主要活動:
//obtain Intent Object send from SenderActivity
Intent intent = this.getIntent();
/* Obtain String from Intent */
if(intent !=null)
{
String strdata = intent.getExtras().getString("Uniqid");
if(strdata.equals("From_Activity_A"))
{
//Do Something here...
}
if(strdata.equals("From_Activity_B"))
{
//Do Something here...
}
if(strdata.equals("From_Activity_C"))
{
//Do Something here...
}
........
}
else
{
//do something here
}
使用putExtra
從每個活動發送的唯一鍵,以確定從哪個活動意圖接收
4
你沒有提供任何上下文,所以這裏有一個一般的方法。
將額外在每個意向型,就像一個獨特的int或字符串:
intent.putExtra("Source", "from BroadcastReceiver");
及用途:
String source = getIntent().getStringExtra("Source");
1
我發現,不涉及從一個活動傳遞到另一個數據的解決方案。
使用startActivityForResult在你通話活動啓動活動:
ActivityCompat.startActivityForResult(this, new Intent(this, MyActivity.class), 0, null);
在被叫用戶的活動,你可以使用下面的代碼來檢測調用活動。
if (getCallingActivity() != null) {
Log.d(TAG, getCallingActivity().getClassName());
}
希望這會有所幫助。乾杯。
+1首先回答!!! :) – 2012-07-17 19:40:17