我正在尝试评估在长期过程中使用单个意图与使用最多五个单独意图的收益和成本。
我的应用程序的用户从网络下载记录,这些记录被解析为数据库。用户可以在任何给定时间下载 1 到 5 个人的记录。
我有这样的应用程序设置:
private OnClickListener mySubmitOnClick = new OnClickListener() {
@Override
public void onClick(View v) {
ArrayList<String> idsOfRecordsArray = getIdsOfRecordsToDownload();
Intent intentToRetrieve = new Intent(getActivity(),
RetrieveData.class);
Messenger messenger = new Messenger(handler);
intentToRetrieve.putExtra("MESSENGER", messenger);
intentToRetrieve.putStringArrayListExtra ("IdList",
idsOfRecordsArray);
v.getContext().startService(intentToRetrieve);
showDialog("Some Message");
}
}
这行得通,但由于解析数据需要时间,我有时会遇到超时错误。
我把它改成这样:
private OnClickListener mySubmitOnClick = new OnClickListener() {
@Override
public void onClick(View v) {
ArrayList<String> idsOfRecordsArray = getIdsOfRecordsToDownload();
while(iCount < idsOfRecordsArray.size()) {
ArrayList<String> currentID = new ArrayList<String>();
currentAthleteID.add(athleteIdArray.get(iCountAthletes));
Intent intentToRetrieve = new Intent(getActivity(),
RetrieveData.class);
Messenger messenger = new Messenger(handler);
intentToRetrieve.putExtra("MESSENGER", messenger);
intentToRetrieve.putStringArrayListExtra ("IdList",
currentID);
v.getContext().startService(intentToRetrieve);
showDialog("Some Message");
iCount++;
}
}
因此,我现在最多可以同时触发五 (5) 个意图。这看起来很稳定,足够了。但是,处理进度对话框有点麻烦。如果我只打开 1 个对话框,它会在进程完成之前关闭。
关于哪种方法更好的想法?或者也许我应该放弃两者以采用其他方法?