gpt4 book ai didi

java - 如何刷新需要从数据库加载的 Android Activity ?

转载 作者:行者123 更新时间:2023-12-02 03:41:50 24 4
gpt4 key购买 nike

我有一个 Android Activity ,它从数据库加载信息并将信息传递给另一个 Activity 。

Activity 二处理信息并更新数据库,然后以这种方式重新启动 Activity 一:

Intent intent = new Intent(TransActivity.this, MainActivity.class);
TransActivity.this.startActivity(intent);

这工作正常,但它实际上并没有加载数据库中更新的新信息。如何启动 Activity 一(mainactivity)并让它加载 Activity 二(TransActivity)更新的新信息?

最佳答案

每当我需要做此类事情时,我都会使用Loader。加载器是为 Activity 设置数据的绝佳方法,但人们对它们的理解还不是很好。

您可以使用 CursorLoader,但这需要 ContentProvider,而且我打赌您不想编写其中之一。

我会编写一个自定义 AsyncTaskLoader 子类来查询数据库并返回 Cursor

查看 Loaders 的文档和示例应用程序,了解它对您有何帮助。

此外,您可能应该查看 Activity 方法 startActivityForResult()setResult()onActivityResult()。然后您的 TransActivity 可以“返回”到您的 MainActivity。这是一个更好的流程。

因此,一旦您有了 Loader,您的 MainActivity 将调用 LoaderManager.createLoader() 来启动加载程序。

您可以使用 MainActivity.startActivityForResult() 调用 TransActivity

然后,一旦您的 TransActivity 更新了数据库,它就会调用 setResult()finish()

这将调用 MainActivity 中的 onActivityResult() 重写,您可以在其中调用 LoaderManager.restartLoader() 来加载新数据.

如果您不想使用加载器,您可以在 onActivityResult() 中重新查询数据库,因为您知道 TransActivity 已完成更新。

关于java - 如何刷新需要从数据库加载的 Android Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36756944/

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