当我开始一项活动时,我将执行此操作
webservice.updateallCatNews();
此功能是将数据从在线数据库检索到本地数据库。完成时间不是恒定的,取决于互联网速度。
我想知道动作何时完成执行。有时15,但有时10或20。我需要在完成后开始活动。
除了 asynctask 之外,任何函数都可以检测到动作是否完成?
private class UpdatingNews extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
webservice.updateallCatNews();
return null;
}
@Override
protected void onPostExecute(String result) {
}
}
活动课
private UpdatingNews update;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_formnewuser);
webservice = new Database_WebService(this);
update = new UpdatingNews();
if (isOnline() == true) {
update.execute("...");
}
}
UpdateallCatNews 类
public void updateallCatNews() {
try {
List<List_CategoryNews> newsCat = dbhelper.getAllNewsCategories();
for (List_CategoryNews nwCat : newsCat) {
int CatNewsID = nwCat.getCatID();
if (CatNewsID != 0) {
List_CategoryNews deleteNewsCat = new List_CategoryNews(
CatNewsID);
dbhelper.DeleteNewsCat(deleteNewsCat);
}
}
GetNewsCategory();
} catch (Exception ex) {
AlertDialog.Builder b = new AlertDialog.Builder(mContext);
b.setMessage(ex.toString());
b.show();
}
}
在这个类中,没有其他错误,因为可以执行其他活动。
这 if() 似乎没有运行
if(update.getStatus().equals(AsyncTask.Status.RUNNING));
为什么函数
webservice.updateallCatNews();
不执行?