【发布时间】:2012-06-18 08:45:38
【问题描述】:
我目前有 2 项不同的活动需要一起完成。
我需要Activity #1先做一些工作,然后调用Activity#2并等到它完成,然后做一些不同的工作,然后暂停并再次调用Activity#2,等等。
编辑:我不知道我在想什么,但我错过了这篇文章:
每当我从 Activity 2 获得一些结果时,我都需要更新 Activity 1 的 UI,因此我决定将大部分代码放在 AsyncTask 中:
//class Activity#1:
onCreate(){
// creates UpdateUITask (the AsyncTask), pass its Context as parameter
}
onActivityResult()
{
// do something with result
}
// the AsyncTask
class UpdateUITask implements AsyncTask{
doInBackground(){
// uses the passed context to call startActivityForResult(Activity#2)
// this is done multiple times ***
}
publishProgress()
{
// update the UI of Activity #1
}
}
我的问题是我上面用 * 标记的内容实际上并没有被 startActivityForResult 暂停,而只有 Activity#1 被暂停。因此,AsyncTask 创建了 Activity#2 的多个实例,这在我的情况下是不可取的。有什么办法可以解决这个问题吗?
对之前的不便深表歉意。
【问题讨论】:
-
android中的术语
activity代表一个屏幕。不确定您是否使用术语activity来表示屏幕或某些胎面活动。请澄清。 -
它们是常规的屏幕活动,虽然我让它们自动运行,并且它们应该处理我需要的其他活动的一些信息。
标签: android multithreading android-activity