【问题标题】:Android, how to pass data from async task called from main activity, to secondary activity?Android,如何将数据从主要活动调用的异步任务传递到辅助活动?
【发布时间】:2011-07-10 22:21:19
【问题描述】:

我的应用程序有一个主要活动“A”和一个次要活动“B”(通过单击按钮调用)。 就在活动 B 开始之前,我从活动 A 运行异步任务以从远程 Web 服务获取 xml 数据。 然后如何将 xml 数据传递给活动 B?我不能使用类似的东西

intent.putExtra("xmlData", xmlData);

因为,当intent启动时,xmlData是空的,然而……

或者,我是否使用了错误的方法?我决定从活动 A 而不是 B 运行异步任务,因为我想我可以节省一些时间来等待活动 B 中的远程数据...

【问题讨论】:

    标签: android android-activity android-asynctask


    【解决方案1】:

    通过intent.putExtra()从A向Activity B发送url,或者唯一的数据,如id,如果url相同,则在创建B活动时使用AsyncTask获取数据。 onPreExecute 中的 progressDialog 也可能已经到位。

    然后,如果有任何类似的任务,您可以重用 Activity B,例如获取、解析和呈现。

    【讨论】:

      【解决方案2】:

      在 AsyncTask 完成后,在 onPostExecute() 内的 startActivity 中创建意图并触发它。

      另外,xmlData 是字符串吗?那很好,如果是这样,否则你需要实现 Parcelable。顺便说一句,你应该小心你的标识符。您传递给 putExtra 的标识符中的拼写错误或不正确的大小写可能会导致您找不到它。

      【讨论】:

      • 我需要立即启动Activity B(让用户看到一些东西,即使不是最新的......),所以我等不及 AsyncTask 完成......
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-28
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-14
      相关资源
      最近更新 更多