Android 获取以前的活动?

Android 获取以前的活动?,android,android-intent,android-activity,Android,Android Intent,Android Activity,虽然这个问题已经被问了很多次,但我找不到关于这个问题的答案 我有三个活动,A、B和C 可以从A->B获取,也可以从A->C获取;无法从B->C获取 进入活动C后,退出活动的唯一方法是按下系统后退按钮,或通过按下工具栏上的后退按钮调用onBackPressed()。我从未创建另一个从C启动的意图。因为我从不创建意图,所以我无法调用Intent.putExtra(key,value) 我试图在a中实现一些数据的条件刷新——但前提是我们从B返回。如何实现这一点?您可以使用它在活动、服务、片段等之间进行

虽然这个问题已经被问了很多次,但我找不到关于这个问题的答案

我有三个活动,
A、B和C

可以从
A->B
获取,也可以从
A->C
获取;无法从
B->C
获取

进入活动
C
后,退出活动的唯一方法是按下系统后退按钮,或通过按下工具栏上的后退按钮调用
onBackPressed()
。我从未创建另一个从
C
启动的意图。因为我从不创建意图,所以我无法调用
Intent.putExtra(key,value)


我试图在
a
中实现一些数据的条件刷新——但前提是我们从
B
返回。如何实现这一点?

您可以使用它在活动、服务、片段等之间进行轻松的通信。它非常易于使用,并且可以轻松完成您的要求

您只需要在活动B中发布某个事件

@Override onBackPressed()
或者任何合适的地方。Eventbus是一个很好的工具,您应该学会使用它,它将使您受益匪浅

编辑:我刚刚想起一个我不推荐的快速修复,因为从长远来看,使用EventBus更好


您可以将一个值放在活动B的onStop中的共享首选项中,将另一个值放在活动C的onStop中,然后在活动A的onResume中获取该值。我不确定这是否有效,但我看不出有什么理由不起作用。

“除非我们从
B
回来。”--听起来你需要在
A
中使用
onActivityResult
来检查条件为什么不在活动B中的空白处写下特定的东西呢?这是一种不好的方法,但为了概念证明,你能在backpressed上覆盖,创建返回值的意图,而不是调用super吗?只是想知道,您可能不想这样做,您必须调用startActivityForResult()并使用onActivityResult处理活动B的结果。使用请求代码和结果代码进行区分。