获取先前的活动?

3
尽管这个问题已经被问了很多次,但是我无法找到我的变化的答案。
我有三个活动A、B和C。
可以从A到B,也可以从A到C;但是不能从B到C。
一旦我们进入C活动,唯一的离开该活动的方法是按系统返回按钮或按工具栏中的back按钮调用onBackPressed()。我从未创建另一个Intent来从C启动。因为我从未创建Intent,所以我没有办法调用intent.putExtra(key, value)。
我试图实现对A中某些数据的条件刷新——但只有当我们从B回来时才刷新。我该怎么做呢?

只有当我们从 B 返回时才需要这样做。听起来你需要在 A 中使用 onActivityResult 来检查条件。 - OneCricketeer
你为什么不直接在Activity B的void中编写那个特定的东西呢? - durbnpoisn
这是一种不好的做法,但为了概念验证,您可以覆盖onBackPressed方法,创建一个意图来返回您的值,并且不调用super方法。只是想知道,可能不想这样做。 - Script Kitty
你需要调用startActivityForResult()方法,并利用onActivityResult()方法来处理从B Activity返回的结果。使用请求码和结果码进行区分。http://developer.android.com/training/basics/intents/result.html - Anees Deen
1个回答

1
你可以使用EventBus在活动、服务、片段等之间进行简单的通信。它非常易于使用,并且可以轻松地完成你所要求的任务。
你只需要在B活动中发布某个事件即可。
@Override onBackPressed()

或者在合适的地方使用。Eventbus是一个很好的工具,你应该学会使用它,它会给你带来很大的好处。

编辑:我刚想起一个快速解决方法,但我不建议使用,因为使用EventBus长期来看更好。

你可以在Activity B的onStop中将一个值放入共享偏好中,将另一个值放入Activity C的onStop中,然后在Activity A的onResume中获取该值。我不确定这是否有效,但我认为没有理由不行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接