Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android架构:光标应该放在哪里?_Android - Fatal编程技术网

Android架构:光标应该放在哪里?

Android架构:光标应该放在哪里?,android,Android,情景: public class MyApplication extends Application{...} 三项活动,概述、列表和地图, 显示相同的数据,只提供不同的UI/UX 输入Contentprovider数据库并由SyncAdapter在外部频繁更新的数据, 另一个应用程序的一部分 将Contentprovider中的数据读取到游标。 Do cursor.setNotificationUri(), 使光标侦听db/Uri更改 Alt1.在MyApplication中按住光标。 概述

情景:

public class MyApplication extends Application{...}
三项活动,概述、列表和地图,
显示相同的数据,只提供不同的UI/UX

输入Contentprovider数据库并由SyncAdapter在外部频繁更新的数据,
另一个应用程序的一部分

将Contentprovider中的数据读取到游标。
Do cursor.setNotificationUri(),
使光标侦听db/Uri更改

Alt1.在MyApplication中按住光标。
概述、列表和地图然后向MyApplication请求数据。
在数据库更改中,MyApplication保留对每个活动的引用
并通知他们再次从MyApplication请求数据

备降2.在每个活动中保持一个光标。
在db change上,每个活动都会再次查询光标以获取数据


光标应该放在哪里?

我面临类似的问题,但不是DB和光标,而是简单的web请求\响应。
您很快就会开始面临的问题是,当您的活动在请求-响应过程中终止时会出现什么情况。 我建议如下:

  • 创建一个你将继承的基本活动 从中,将包含 查询
  • 确保你有一个方法来填充 onResume中包含数据的货币 开始收听广播 接受者
  • 在数据库中完成数据库更新后 分离线程,通知所有 接受者
  • 在执行创建时,请检查 数据库中的数据,以查看是否遗漏 来自广播的呼叫,因为您的活动 他死了

  • 所以基本上u在每个活动中都会有一个游标,但是不需要通过代码来管理它,除非您需要做一些不符合标准的事情。不要忘记在活动结束后处理游标。

    我面临类似的问题,但不是DB和游标,而是简单的web请求\响应。
    您很快就会开始面临的问题是,当您的活动在请求-响应过程中终止时会出现什么情况。 我建议如下:

  • 创建一个你将继承的基本活动 从中,将包含 查询
  • 确保你有一个方法来填充 onResume中包含数据的货币 开始收听广播 接受者
  • 在数据库中完成数据库更新后 分离线程,通知所有 接受者
  • 在执行创建时,请检查 数据库中的数据,以查看是否遗漏 来自广播的呼叫,因为您的活动 他死了

  • 所以基本上u在每个活动中都会有一个游标,但是不需要通过代码来管理它,除非您需要做一些不符合标准的事情。活动结束后,不要忘记处理光标。

    谢谢,非常感谢您的输入。根据您的回答,我不确定您是否正在使用自定义应用程序。当AndroidOS结束活动的生命周期时,应用程序仍然有效。如果应用程序持有游标,我们将只查询一次,但保留对活动的引用。如果每个活动有一个游标,我们将使用更多的数据库资源,但不存在耦合应用程序活动。我的问题是关于这两种方法的缺点和优点。不要假设应用程序永远存在。在真实设备上,它可能会作为终止后台进程的一部分被终止。例如,如果你接到一个来电,你的应用程序就会进入后台。当应用程序再次出现在前台(电话通话结束)时,您的应用程序进程将恢复。在还原时,将重新创建
    应用程序
    实例,但是只有您负责处理其状态,例如,如果您在
    应用程序
    实例中有某个字段,并且该字段是由应用程序的其他部分设置的,那么现在您可以在那里获得
    null
    。谢谢您的输入。根据您的回答,我不确定您是否正在使用自定义应用程序。当AndroidOS结束活动的生命周期时,应用程序仍然有效。如果应用程序持有游标,我们将只查询一次,但保留对活动的引用。如果每个活动有一个游标,我们将使用更多的数据库资源,但不存在耦合应用程序活动。我的问题是关于这两种方法的缺点和优点。不要假设应用程序永远存在。在真实设备上,它可能会作为终止后台进程的一部分被终止。例如,如果你接到一个来电,你的应用程序就会进入后台。当应用程序再次出现在前台(电话通话结束)时,您的应用程序进程将恢复。在还原时,将重新创建
    应用程序
    实例,但是只有您负责处理其状态,例如,如果您在
    应用程序
    实例中有某个字段,并且该字段是由应用程序的其他部分设置的,那么现在您可以在那里获得
    null
    。+1回答问题。Android架构细节确实是一个需要深入讨论的问题。Android架构细节确实是一个需要深入讨论的问题。