在我的应用程序中,他们是一项活动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