如何决定我们来自哪个活动?

stu*_*ght 5 android android-intent android-activity

你好老运动!

至此,我有3项活动如下:

- 活动A.

- 活动B.

- 活动C.

在活动AI中创建转到活动C的意图:

Intent intent=new Intent(getActivity(),C.class);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

在活动BI中也创建了转到活动C的意图:

Intent intent=new Intent(getActivity(),C.class);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

如果来自A和B,活动CI将会做一些不同的事情.

问题是"如何让活动C知道活动A或B是否正在呼叫的最佳做法是什么?

- 缺乏英语,来自巴厘岛的问候..

Orh*_*but 6

您可以将具有意图的参数传递给另一个活动,这样您就可以知道哪个活动已启动.

Intent intent=new Intent(getActivity(),C.class);
intent.putString("activity","A");  // and same goes for B
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

在活动C中,

Intent intent = getIntent();
String previousActivity= intent.getStringExtra("activity");
Run Code Online (Sandbox Code Playgroud)


Ani*_*iya 5

您在这里可以做的是,您可以传递一个值,例如flag = "A"何时来自Activity Aflag = B何时来自Activity Bvia,Intent并在Activity C...中获取该值。

在活动A中

Intent intent = new Intent(this, C.class);
intent.putExtra("flag", "A");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

在活动B中

Intent intent = new Intent(this, C.class);
intent.putExtra("flag", "B");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

在活动C中

    Intent intent = getIntent();
    String checkFlag= intent.getStringExtra("flag");

if(checkFlag.equals("A");
// It is from A

else
// It is from B
Run Code Online (Sandbox Code Playgroud)