如何在Android上的多个活动之间发回值

Mau*_*ori 1 android android-intent android-activity

我正在尝试使用从Activity3检索到Activity1的值.这是我的流程:

Activity1调用Activity2→Activity2.finish(),调用Activity3→Activity3.doSomethingAndGetValue()→Activity3.finish()→Activity1.useDoSomethingAndGetValue();

我找不到将Activity3中的值发送回Activity1的方法; 即使使用startActivityForResult(),因为到那时Activity2已被销毁.

我尝试使用可序列化的接口并将其作为意图的额外值传递,但此解决方案仅适用于传递的对象是静态的,这不允许我对活动1上的当前成员变量进行任何更改.

此外,我尝试了所有这些选项但没有成功:

/sf/answers/1211468751/

(我不允许使用共享首选项)

有没有人有任何想法?

注意:我不能添加eventBus,我知道会很好,也很容易,但架构不允许我.

Nir*_*uan 5

您可能希望在启动活动2和3时使用意图标志FLAG_ACTIVITY_FORWARD_RESULT,如Intent中所述.

Activity 1 -> startActivityForResult(activityB,0);
Activity 2 -> activityCintent.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); startActivity(activityCintent); finish();
Activity 3 -> setresult(10); finish();
Activity 1 -> if(result==10) {dofunction(); } 
Run Code Online (Sandbox Code Playgroud)

这是FLAG_ACTIVITY_FORWARD_RESULT的逻辑.首先,您为结果启动活动,新活动会将此意图发送到另一个新活动,直到您设置结果.