【问题标题】:AsyncTaskLoader and AsyncTask in one ActivityAsyncTaskLoader 和 AsyncTask 在一个 Activity 中
【发布时间】:2014-04-18 12:58:06
【问题描述】:

我正在使用包含 2 个片段的 Swipe tab 开发一个应用程序。我在 Fragment 1 中有一个 AsyncTaskLoader 从数据库加载数据并显示在 ListView 中,在 Fragment 2 中有一个 AsyncTask 来解析来自服务器的 JSON 数据并显示在 ListView 中。它似乎工作正常,但有时我会因为窗户泄漏等等而崩溃。问题是如何使 Fragment 2 中的 AsyncTask 仅在我刷入它时运行?现在,当我启动我的应用程序时,即使我在 Fragment 1 中,AsyncTask 也会运行。

谢谢

【问题讨论】:

  • 你能在下面查看我的答案吗?

标签: android android-fragments android-asynctask


【解决方案1】:

你可以试试这个(在第二个片段上):

@Override
    public void setMenuVisibility(final boolean visible) {
        super.setMenuVisibility(visible);
        if((visible)  )
        {
             //do something here    
        }

      }

【讨论】:

  • 稍后我会检查你的答案,我现在不在电脑旁。
【解决方案2】:

请更具体。如果您可以发布您的代码。

你的错误是这样的吗?

Activity has leaked window that was originally added

如果是,则表示您在 AsyncTask 中显示了一个进度对话框,并在 OnPostExecuted() 方法之后将其隐藏,但您忘记 dissmis() 该进度对话框

看看这篇文章

Activity has leaked window that was originally added

【讨论】:

  • 我已经在 onPostExecute 有 dialog.dismiss(),它是随机发生的,所以我担心这是因为 Fragment 1 中的加载程序。我现在离开我的电脑,所以我会发布我的稍后编码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-19
  • 1970-01-01
相关资源
最近更新 更多