在我的應用程序中,他們是一項活動C,可以通過兩項活動啓動。我怎樣才能找到哪個活動啓動活動C?所以我的活動可以採取相應的行動。任何人都可以幫忙。? 謝謝。哪項活動啓動了此活動?
-1
A
回答
4
試試這個..
A.java
Intent send = new Intent(A.this,C.class);
send.putExtra("name", "A Activity");
startActivity(send);
B.java
Intent send = new Intent(B.this,C.class);
send.putExtra("name", "B Activity");
startActivity(send);
C.java
if(getIntent().hasExtra("name")){
String result = getIntent().getStringExtra("name");
if(result.equals("A Activity")){
//Do Someting
}else if(result.equals("B Activity")){
//Do Someting
}
}
0
在activityA和activityB上使用Toast消息或日誌消息。所以從這種方式你可以知道哪個活動有啓動activityC。
例如。
在activityA按鈕的單擊事件中使用以下代碼。
Toast.makeText(getApplicationContext(),
"Launched from A", Toast.LENGTH_LONG).show();
並在activityA按鈕的單擊事件中使用以下代碼。
Toast.makeText(getApplicationContext(),
"Launched from B", Toast.LENGTH_LONG).show();
編輯
根據您的評論i want my activity to know so that i can take actions accordingly
此,
,你可以有一個像
public static int a = 0;
一個靜態變量,然後在每個活動增加,並檢查該值,在activityA中設置爲1,在activityB中設置爲2,然後檢查條件,
if (a == 1){
// came from activityA
}else{
//came from activityB
}
1
您可以在啓動活動時從意圖傳遞字符串。從這個字符串你可以執行你想要的動作。
Intent intent = new Intent(this, Activity.class);
intent.putExtra("name", "activityName");
startActivity();
0
這很簡單...使用的logcat或吐司或SYSOUT
登錄
Log.w("myApp", "C activity Called")
吐司
Toast.makeText(getApplicationContext(), "C Activity is Called!!! =)",
Toast.LENGTH_LONG).show();
SYSOUT
System.out.println("C Activity called");
0
在你用來啓動你的活動的意圖中,C把一個額外的數據存儲在這個活動C被啓動的地方。在活動C啓動時獲得額外費用並據此進行。
0
只是按照下面
給定至C
Intent send = new Intent(A.this,C.class);
send.putExtra("FROM", "FROM_A");
startActivity(send);
B到C
Intent send = new Intent(B.this,C.class);
send.putExtra("FROM", "FROM_B");
startActivity(send);
最後在C.java
if(getIntent().hasExtra("FROM")){
String result = getIntent.getStringExtra("FROM");
}
您還可以使用活動管理器就知道了,有一些嘗試像下面
ActivityManager mngr = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> taskList = mngr.getRunningTasks(10);
if(taskList.get(0).numActivities == 1 &&
taskList.get(0).topActivity.getClassName().equals(this.getClass().getName())) {
Log.i(TAG, "This is last activity in the stack");
}
0
給出你可以在意圖通過簡單String
價值併爲您在活動Ç該值,對於這個活動已經啓動活動C。下面看看我的代碼:
在你活動A
Intent intentA = new Intent(ActivityA.this,ActivityC.class);
intentA.putExtra("ActivityName", "ActivityA");
startActivity(intentA);
在你活動B
Intent intentB = new Intent(ActivityB.this,ActivityC.class);
intentB.putExtra("ActivityName", "ActivityB");
startActivity(intentB);
您的活動C檢爲如下值:
String activityName=getIntent().getStringExtra("ActivityName");
if(activityName.equalsIgnoreCase("ActivityA"))
{
//your logic
}
else if(activityName.equalsIgnoreCase("ActivityB"))
{
// your logic
}
相關問題
- 1. 如何確定哪個活動啓動了一項服務?
- 2. 啓動活動
- 3. Android Switched啓動活動:舊的啓動活動仍然表現如此
- 4. 啓動時啓動活動
- 5. 將活動結果發送到哪裏,如果結果啓動了新活動,然後主活動結束?
- 6. android確定要啓動哪個活動
- 7. 啓動和活動完成後活動
- 8. 從非活動類啓動Android活動
- 9. Android的 - 了java.lang.RuntimeException:無法啓動活動
- 10. 了java.lang.RuntimeException:無法啓動活動
- 11. 了java.lang.RuntimeException:無法啓動活動
- 12. 了java.lang.RuntimeException無法啓動活動componentinfo
- 13. 了java.lang.RuntimeException:無法啓動活動
- 14. 啓動活動導致了java.lang.RuntimeException
- 15. 活動未啓動
- 16. 活動未啓動
- 17. PreferenceScreen啓動活動
- 18. 啓動InCallScreen活動
- 19. 啓動另一項活動不會延長活動超類
- 20. Android完成當前活動並啓動父項活動
- 21. 如何從android中的選項卡活動啓動fragement活動?
- 22. 啓動活動超時,因爲活動啓動另一個活動
- 23. 如何檢查在新活動中啓動了哪個按鈕?
- 24. 如何檢查哪個Intent啓動了該活動?
- 25. 瞭解哪個活動首先在Android應用中啓動
- 26. Android:動態啓動活動
- 27. Android動態啓動活動
- 28. Android應用無法在啓動活動後啓動活動
- 29. 無法啓動活動java.lang.RuntimeException:無法啓動活動
- 30. 從其他活動啓動主啓動器活動
不,我希望我的活動知道以便我可以採取相應的行動 –
@VarunAjayGupta查看我的答案。 – GrIsHu