目前我的应用程序的工作方式如下:
MainActivity
调用WebService
可能会下载数千个数据库记录。
接下来,WebService
向MainActivity
发送一个回调,告诉它已完成下载以及数据。
然后,MainActivity
调用DBHelper
异步保存所有数据,然后onPostExecute()
使用回调告诉MainActivity
它已完成。
最后,从DBHelper
获取回调后,MainActivity
会以表格形式显示刚刚下载的所有数据。
简而言之:MainActivity->WebService->MainActivity->DBHelper->MainActivity
问题是,MainActivity
相当杂乱,实施了所有这些回调,并且很难遵循。我想将下载/保存分离到一个单独的IntentService类中,并且由于IntentService在它自己的线程上运行,我将摆脱DBHelper
中的异步任务,而只是告诉IntentService在{中完成保存{1}}函数底部的{1}}。我担心IntentService会以某种方式告知已完成保存,而实际上记录仍在保存中。
我想要合理的IntentService方法还是正确的方法?如果没有像上面描述的任何奇怪的副作用,它会工作吗?