Android,如何将从主活动调用的异步任务中的数据传递到辅助活动?
我的应用程序有一个主要活动“A”和一个次要活动“B”(通过单击按钮调用)。 就在活动 B 启动之前,活动 AI 运行一个异步任务以从远程 Web 服务获取 xml 数据。 然后我如何将 xml 数据传递给活动 B?我不能使用类似的东西
intent.putExtra("xmlData", xmlData);
,因为当意图启动时,xmlData 是空的,但是......
或者,我使用了错误的方法吗?我决定从活动 A 而不是 B 运行异步任务,因为我想我可以节省一些等待活动 B 中的远程数据的时间...
My application has a main activity "A", and a secondary one, "B" (called on a button click).
Just before activity B is started, from activity A I run an async task to get xml data from a remote web service.
How do I then pass xml data to activity B? I can't use something like
intent.putExtra("xmlData", xmlData);
since, when intent is started, xmlData is empty, yet...
Or, am I using a wrong approach? I decided to run the async task from activity A, instead than B, since I suppose I can save some time waiting for remote data in activity B...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
通过 Intent.putExtra() 将 url 或唯一数据(例如 id,如果 url 相同)从 A 发送到 Activity B,并在 onCreate B 活动时使用 AsyncTask 获取数据。 onPreExecute 中的 ProgressDialog 也可能就位。
然后,如果有任何类似的任务(例如获取、解析和呈现),您可以重用 Activity B。
Send the url, or unique data such as id if the url is the same, to the Activity B from A through intent.putExtra(), and fetch the data with AsyncTask as you onCreate the B activity. A progressDialog in onPreExecute might be in place as well.
Then you can reuse the Activity B if there is any similar task e.g. fetch, parse and present.
创建意图并在 AsyncTask 完成后在 onPostExecute() 内的 startActivity 中将其触发。
另外,xmlData 是字符串吗?如果是这样就好了,否则你需要实现Parcelable。顺便说一句,您应该小心您的标识符。您传递给 putExtra 的标识符中的拼写错误或大小写错误可能会导致您找不到它。
Create the intent and fire it off in startActivity inside onPostExecute() after your AsyncTask completes.
Also, is xmlData a String? That's fine, if so, otherwise you need to implement Parcelable. As an aside, you should be careful with your identifiers. A typo or incorrect case in the identifier you pass to putExtra could cause you to not find it.