异型最佳实践:更新和过滤活动以及FCM上的Widget ListView



实际上我正在使用一个Android应用程序,其中活动和小部件listView通过asynctask填充。这是我当前的实施

asynctask- 来自URL的AsynCtask获取JSON(如果可用的Internet,请从资产jason文件中读取其他读取),并通过模型填充listView。

主要活性 - 从MainActivity的发作方法执行异步

小部件 - WidgetProvider还使用此asynctask类来填充ListView。

fcmmessagingservice- 它将向主进性发送意图,而主动行为将处理此意图并再次执行异步。

根据要求,一切都很好,完美。但是我想知道,这种情况可以通过更好的方法来实现...

喜欢: 在FCM通知上,某种类型的方法将直接填充已更新/修改的MainActivity和WidgetProvider的列表。

在这里,我想知道的还有一件事,此listView具有一些可以通过设置验证更改的过滤器。当前,用户已重新启动该应用程序以在更改过滤器后重新执行异步。如果设置已更新,我不知道如何直接操纵ListView。

谢谢问候

我个人不认为您的方法不正确。

我认为有一个更改对您来说是必要的:而不是从FcmMessagingService启动MainActivity,而是创建一条通知,即单击时,启动MainActivity。这对您的用户来说会更好,而不是无处启动活动。

关于设置更新,您需要在更改偏好值时实现侦听器。这个问题有一个很好的例子:

// Use instance field for listener
// It will not be gc'd as long as this instance is kept referenced
listener = new SharedPreferences.OnSharedPreferenceChangeListener() {
  public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
    // Implementation
  }
};
prefs.registerOnSharedPreferenceChangeListener(listener);

最新更新