2012-07-17 76 views

回答

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

+1首先回答!!! :) – 2012-07-17 19:40:17

1

我發現,不涉及從一個活動傳遞到另一個數據的解決方案。

使用startActivityForResult在你通話活動啓動活動:

ActivityCompat.startActivityForResult(this, new Intent(this, MyActivity.class), 0, null); 

在被叫用戶的活動,你可以使用下面的代碼來檢測調用活動。

if (getCallingActivity() != null) { 
     Log.d(TAG, getCallingActivity().getClassName()); 
    } 

希望這會有所幫助。乾杯。