【问题标题】:How to refresh all activity from one activity如何从一项活动刷新所有活动
【发布时间】:2020-10-12 04:09:04
【问题描述】:

我有多个片段及其活动。

当我在 MainActivity 中刷新时,我希望所有片段的活动也刷新。因为我使用数据库,它涉及刷新其他片段以更新数据。

MainActivity.kt

swipeRefresh.setOnRefreshListener {
      // refreshing MainActivity only
      // I don't know how to call fragment's activity here

      swipeRefresh.isRefreshing = false
}

【问题讨论】:

  • 为什么要刷新当前活动中的任何其他活动?
  • 我有同样的问题,比如@PriyankaRajput。我对这个问题的回答是在所有活动中使用广播接收器,并确保它不会导致崩溃。即使您在后台刷新用户也只能在导航到特定屏幕时看到结果。所以这也是通过简历实现的
  • 你不能在每个片段上使用观察者并在数据库上的数据发生变化时得到通知吗?
  • 这听起来像是一个基本的设计问题。如果这些不同的 UI 组件使用相同的数据模型,它们应该各自直接观察它,而不是相互之间来回通信以找出数据模型的最新状态。

标签: java android kotlin android-fragments swiperefreshlayout


【解决方案1】:

片段依赖于活动,活动不依赖于片段。您在活动中所做的事情会影响片段。请以此为起点进行查找。

【讨论】:

    【解决方案2】:

    在活动中,你可以调用recreate()"recreate"活动(API 11+)

    或者您可以使用它来从内部刷新 Activity。

    finish();
    startActivity(getIntent());
    

    【讨论】:

    • 这不是解决方案。这是一个黑客
    猜你喜欢
    • 1970-01-01
    • 2018-06-10
    • 1970-01-01
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    • 1970-01-01
    • 2012-05-15
    • 1970-01-01
    相关资源
    最近更新 更多