gpt4 book ai didi

android - 在第一个选项卡 Activity 中处理完 HttpGet 查询后如何更新当前选项卡 Activity ?

转载 作者:行者123 更新时间:2023-11-29 14:05:20 27 4
gpt4 key购买 nike

我有两个选项卡应用程序。在第一个选项卡中,我执行了一个 http 搜索查询,显示了结果并将它们插入到数据库中。第二个选项卡显示来自数据库的数据。如果用户在第一个选项卡中执行搜索并在搜索完成之前导航到第二个选项卡,则搜索完成后必须更新第二个选项卡中的数据。

我想象完成搜索后的第一个选项卡必须告诉第二个选项卡,在第二个选项卡中我应该开始新的 Intent。但我不知道该怎么做。请帮忙。

最佳答案

有多种方法可以解决这个问题,而且由于我只有上述详细信息可供引用,所以这个建议可能是也可能不是最佳解决方案,但这里是:

在我看来,我们有以下任务要解决

  1. 您想进行 HTTP 调用,然后更新 UI,作为选项卡 1
  2. 您想查询一个 SQLite 实例并在 UI 上显示数据,作为标签 2
  3. 任何时候在选项卡 1 中调用搜索,完成后必须更新选项卡 2

让我对您需要完成的 3 项任务中的每一项进行评论

您想进行 HTTP 调用,然后更新 UI,作为选项卡 1

由于您要在此处进行外部调用,这可能需要一些时间,因此最好的办法是使用 AsyncTask。如果您尝试在主应用程序线程上执行 HTTP 调用,并且花费的时间太长,您的应用程序将会崩溃,因此请使用 AsyncTask 来执行调用,并根据需要更新 UI。

您可以在选项卡 1 Activity 的 onResume() 中调用 AsyncTask,或者将其挂接到按钮上,以最适合您的方式为准。

这可能对你有帮助:

private class CallHTTP extends AsyncTask<String, Integer, Bitmap>
{
@Override
protected void onPreExecute()
{
// initialise any UI stuff here
}

@Override
protected Bitmap doInBackground(String... strings)
{
//actually make the HTTP call here
}

protected void onPostExecute(final Bitmap result)
{
//when you're done, update the UI here or fire off another activity
}
}

onPostExecute() 中,您可以为您的第二个选项卡 Activity 创建一个 Intent ,可能类似于

Intent i = new Intent(this, MyActivity.class);
startActivity(i);

您想查询一个 SQLite 实例并在 UI 上显示数据,即选项卡 2

与上面几乎相同,您需要一个 AsyncTask 来完成查询数据库的繁重(相对而言)工作,使用上述策略并在完成后更新 UI。 This might help you get started on the SQLite side .

任何时候在选项卡 1 中调用搜索,完成后它必须更新选项卡 2

如果您遵循我上面给出的建议,您应该在标签 1 搜索完成时隐式获取标签 2 的更新,因为它的 onPostExecute() 将启动 Activity ,迫使它点击 onResume() 您可以在其中重置内容 View 。

我希望已经为您提供了足够的信息来帮助您入门

干杯

关于android - 在第一个选项卡 Activity 中处理完 HttpGet 查询后如何更新当前选项卡 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7374854/

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