gpt4 book ai didi

安卓架构: Where should we hold the Cursor(s)?

转载 作者:行者123 更新时间:2023-11-30 04:47:15 26 4
gpt4 key购买 nike

场景:

public class MyApplication extends Application{...}

三个 Activity ,概述,列表和 map ,
显示相同的数据,只是提供不同的 UI/UX。

数据被送入 Contentprovider 数据库并通过 SyncAdapter 频繁地从外部更新,
另一个应用程序的一部分。

从Contentprovider读取数据到游标。
执行 cursor.setNotificationUri(),
使游标监听 db/Uri 更改。

Alt1. 将光标放在 MyApplication 中。
Overview、List 和 Map 然后向 MyApplication 请求数据。
在数据库更改时,MyApplication 持有对每个 Activity
的引用并通知他们再次从 MyApplication 请求数据。

Alt2。在每个 Activity 中按住一个光标。
在数据库更改时,每个 Activity 都会再次重新查询游标以获取数据。

我们应该在哪里放置光标?

最佳答案

我遇到了类似的问题,但不是数据库和游标,而是简单的网络请求\响应。
您将很快开始面临的问题是当您的 Activity 在请求响应过程中死亡时会发生什么。我建议如下:

  1. 做一个你会继承的基础 Activity 从中将包含一个游标查询。
  2. 确保你有一个方法来填充onResume 中带有数据的游标开始收听广播接收者。
  3. 当你完成数据库更新时单独的线程,通知所有接收者。
  4. 当你执行创建检查数据库中的数据,看看你是否错过了广播打来的电话,因为你的 Activity 已经死了。

所以基本上你会在每个 Activity 中都有一个光标,但不需要通过代码来管理它,除非你需要做一些不符合它标准的事情。不要忘记在 Activity 结束后释放光标。

关于安卓架构: Where should we hold the Cursor(s)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4562751/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com