アクティビティを開始すると、このアクションを実行します
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();
}
}
このクラス内では、他のアクティビティを実行できるため、others エラーはありません。
この if() は実行されていないようです
if(update.getStatus().equals(AsyncTask.Status.RUNNING));
なぜ機能
webservice.updateallCatNews();
実行しませんか?