android - How to use progress dialog with AsyncTask and fragment? -
i want use progressdialog within fragment asynctask. activity following code works perfectly, fragment no.
public class resulttask extends asynctask<string, void, report> { private progressdialog pdialog; private context context; public resulttask(context context) { super(); this.context = context; } @override protected void onpreexecute() { super.onpreexecute(); pdialog = new progressdialog(context); pdialog.setmessage("loading..."); pdialog.show(); } @override protected report doinbackground(string... params) { //mylong operation } @override protected void onpostexecute(report report) { pdialog.dismiss(); super.onpostexecute(report); } } how can fix in simple way ? idea of progressbar, let understand user, long operation processed.
update
here code of fragment, execute asynctask:
resulttask task = new resulttask(getactivity()); report report = task.execute("paramenters").get(); and code of activity, select fragment:
private void changeactivity(button button, final fragment fragment) { button.setonclicklistener(new onclicklistener() { @override public void onclick(view v) { fragmentmanager fragmentmanager = getfragmentmanager(); fragmentmanager.begintransaction() .replace(r.id.container, fragment).commit(); } }); }
if use .get() asynctask going wait there until result not arriving, case ui thread blokced, while task running. use .execute , use handlers communicate task. in case, don`t need handler, because onpre , onpost methods related ui, doinbackground not :)
http://developer.android.com/reference/android/os/asynctask.html#get()
article: http://www.vogella.com/tutorials/androidbackgroundprocessing/article.html
Comments
Post a Comment