【问题标题】:Calling third part class method调用第三方类方法
【发布时间】:2014-01-12 03:15:23
【问题描述】:

我有 A 类(扩展 Activity),它显示表格中的项目列表。

在 B 类(扩展活动)中,我正在调用一个最终触发 C 类(C 扩展广播接收器)的方法。

在我的 C 类中,我正在更新我的数据库中的一个表,A 类在其中获取要呈现的项目。

我的问题是如何在 C 类完成更新表后调用 A 类方法。

在这种情况下,将 A 类函数设为静态是完全不可能的。

【问题讨论】:

    标签: java android


    【解决方案1】:

    如果类 C 扩展 BroadcastReceiver 并且它负责更新您的数据库,一旦您更新,您可以发送一个新的 Broadcast 让您的应用程序的其他部分知道表更新已完成。您需要在您想要收到通知的地方(即在您的 A Activity 类中)注册一个接收器。如果您只需要在本地广播(仅对您的应用程序),您可以使用 v4 支持库提供的新 LocalBroadcastManager。它只会在本地广播并摆脱 IPC 开销。

    【讨论】:

      【解决方案2】:

      Activity 通常不能调用其他 Activity 的方法。您需要找到一种不同的方式在这些类之间进行通信。例如,在一个活动中通过registerReceiver() 实例化一个动态接收器,并在另一个活动中发送广播。

      除此之外,您的问题似乎表明您的应用程序架构不是最佳的。一次总是只有一个可见的活动。为什么你的活动需要相互交流?

      【讨论】:

      • 他没有从另一个Activity 调用一个Activity 的方法。 C 类是BroadcastReceiver,而不是Activity。 B 触发 C,然后 C 必须让 A 知道它已经完成。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-10
      • 1970-01-01
      • 1970-01-01
      • 2015-08-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多