在我的 Android 应用程序中,我有两个活动。
一个活动让用户拍照。这张图片被保存下来,然后上传到服务器。服务器返回一些信息并将其显示在列表中。
另一个活动是画廊。用户可以选择一张图片,上传它并在列表中获取相同的信息(与第一个活动相同)
我实现的方式是这样的:
上传和信息任务是一个单独的 AsyncTask,称为
WebServiceTask
. 两个活动都执行此任务。我创建了一个
WebServiceTaskInvoker
界面,以便每个活动都可以指定 preExecute、postExecute、progressUpdate 上发生的情况。
问题是这两个活动在 preExecute、postExecute 和 progressUpdate 上几乎做同样的事情,所以两个活动之间存在代码重复。
OnPreExecute:两个活动都检查互联网连接
OnProgressUpdate:两个活动都会更改 TextView 的文本
OnPostExecute:两个活动都创建一个动态 ListView 并用结果填充它。
我怎样才能解决这个问题?
我知道一种方法是将这两种活动合二为一,但根据过去的经验,我知道这很麻烦而且很混乱。
我可以将 UI 代码放入其中,
WebServiceTask
但这会导致紧密的凝聚力。