我有三个活动,分别称为A,B和C. A是B和C的父活动。以下是所有可能的活动流程。活动A-> B-> C-> A。如何获得B的数据onActivityResult A
- A - >乙 - >按背部或上按钮在操作栏 - > A.
- A - >Ç - >按背部或上按钮在操作栏 - > A.
- A - >乙 - “ç - >按后面 - > B.
- A - >乙 - ”ç - >向上按在操作栏按钮 - > A.
B和C可以修改所存储的数据所以我让B和C通过意图将修改后的数据发送回A,并使用A的onActivityResult
来更新这些数据。
问题出在流程4,如果B修改了一些数据,我该如何将这些修改发送回A?我是否应该将它们传递给C并使C将它们发回给A而C绝对不需要这些数据?
更新
我发现,在流动4.活动A的onActivityResult
没有收到返回的Intent
,在Intent
参数总是null
,所以我们不能从C传递任何数据A.
本来我认为A会收到C的Intent
,所以我可以将B的数据传给C然后传给A,但这是错误的。活动A在流程4中没有收到任何Intent
。
现在我决定更改向上按钮的动作,使其与后退按钮相同,因此流程4将消失。
我也面临同样的问题很多次,我按照以下方式处理这种情况。在onCreate()中的活动A中注册一个广播并在onDestroy()中取消注册。从活动C发送具有相同意图行动的路演。这对我来说很好,但我怀疑这是正确的解决方案。希望其他人能通过更好的解决方案跳入这一点 –