从多个活动向单个活动发送额外内容

Dyo*_*Dyo 2 java android android-activity

我有一组活动,如A,B,C,D.如果A是家庭活动,我想通过将Extras发送到不同活动的活动A来发送值.

来自B:

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

来自C:

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

来自D:

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

在活动A:

if (getIntent().getExtras() != null) {
        isCreate = (boolean) getIntent().getSerializableExtra("-----");
    }
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我在活动A中保留(------)的位置,以便确定它被调用的活动

NSi*_*mon 6

在活动A中,声明一个字符串标记:

public static final String    TAG_ACTIVITY_FROM = "WhichActivity";
Run Code Online (Sandbox Code Playgroud)

在其他活动中,发送:

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

在A中,通过以下方式获取:

if (getIntent().getExtras() != null) {
    String activityFrom = (String) getIntent().getStringExtra(TAG_ACTIVITY_FROM);
}
Run Code Online (Sandbox Code Playgroud)

编辑:您可以根据需要添加多个额外内容,例如(来自活动D)

Intent intent = new Intent(D.this, A.class);
intent.putExtra(A.TAG_ACTIVITY_FROM, "From_D");
intent.putExtra(A.VALUE, 4);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

在活动A中:

public static final String VALUE = "value";

if (getIntent().getExtras() != null) {
  String activityFrom = getIntent().getStringExtra(TAG_ACTIVITY_FROM);
  int value = getIntent().getIntExtra(VALUE, -1);
}
Run Code Online (Sandbox Code Playgroud)