跨活动维护对象状态

时间:2015-06-03 10:55:25

标签: android

我有活动A,其中我有一个URL类型的对象列表(使用类似()的方法)。

我在recyclelerview中加载这些URL对象用户点击该项目,然后打开另一个活动,打开活动B中的详细视图,用户可以在URL对象上按下一个调用“like”方法的按钮。

当用户关闭活动B时,我希望A的回收者视图反映此更改状态。

在Android中如何实现这一目标?

2 个答案:

答案 0 :(得分:2)

对于这种用例,您应该按以下方式启动Activity-B:

Intent intent = new Intent(Context, Activity-B.class);
startActivityForResult(intent, some_int_code);

在活动B中,按照以下说明完成您的操作:

setResult(Activity.RESULT_OK, new Intent());
finish();

以上将通知您的Activity-A中的onActivityResult()方法。然后,您可以按如下方式更新此方法中的任何内容:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (resultCode == RESULT_OK && requestCode == some_int_code) {
       // Write your code here...
    }
} 

您可以阅读文档here

答案 1 :(得分:1)

您可以使用onActivityResult()通知第一个更改活动。

数据是否绑定到某些数据存储?如果是这样,最好根据更新的查询刷新recyclerview。

或者您可以编写一个“管理”这组数据的单例类,以便应用程序的其他部分可以访问所需的数据,更新等。如果您走这条路,我可能还建议实现一个观察者当数据发生更改时,任何感兴趣的组件都会收到更新。

所有这些都非常依赖于您的应用结构和用户互动。