android - Loading an activity before launch -
i have activity contains button, when press button loads second activity. second activity has listview , bunch of other stuff , on devices takes few seconds load want display progressdialog let user know activity in fact loading. have following:
edit:
public void rewardfirstnext(view view){ asynctask<void, void, void> progress = new asynctask<void, void, void>() { private progressdialog progressdialog; protected void onpreexecute(){ progressdialog = new progressdialog(getapplicationcontext()); progressdialog.settitle("loading installed applications"); progressdialog.setmessage("please wait."); progressdialog.setcancelable(false); progressdialog.setindeterminate(true); progressdialog.show(); } protected void doinbackground(void... voids) { packagemanager mpackagemanager = getpackagemanager(); list<applications> packageinfolistapps = new arraylist<applications>(); list<packageinfo> packageinfolist = mpackagemanager.getinstalledpackages(packagemanager.get_permissions); list<packageinfo> installedapps = new arraylist<packageinfo>(); (packageinfo apps : packageinfolist) { if (!issystempackage(apps)) { installedapps.add(apps); } } collections.sort(installedapps, new comparator<packageinfo>() { public int compare(packageinfo o1, packageinfo o2) { return o1.applicationinfo.loadlabel(getpackagemanager()).tostring().comparetoignorecase(o2.applicationinfo.loadlabel(getpackagemanager()).tostring()); } }); (packageinfo apps : installedapps) { packageinfolistapps.add(new applications(apps, false, false)); } //what else happens here? return null; } protected void onpostexecute(void result){ progressdialog.dismiss(); } }; progress.execute((void[]) null); }
what should doing putting of this
mpackagemanager = getpackagemanager(); list<applications> packageinfolistapps = new arraylist<applications>(); list<packageinfo> packageinfolist = mpackagemanager.getinstalledpackages(packagemanager.get_permissions); list<packageinfo> installedapps = new arraylist<packageinfo>(); (packageinfo apps : packageinfolist) { if (!issystempackage(apps)) { installedapps.add(apps); } } collections.sort(installedapps, new comparator<packageinfo>() { public int compare(packageinfo o1, packageinfo o2) { return o1.applicationinfo.loadlabel(getpackagemanager()).tostring().comparetoignorecase(o2.applicationinfo.loadlabel(getpackagemanager()).tostring()); } }); (packageinfo apps : installedapps) { packageinfolistapps.add(new applications(apps, false, false)); }
inside of asynctask.
take new applicationadapter(this, packageinfolistapps, mpackagemanager)
, keep reference of in
applicationadapter adater = new applicationadapter(this, packageinfolistapps, mpackagemanager)
then start progress dialog did , in onpostcreate call
adapter.notifydatasetchanged();
which populate listview , should stop dialog too
Comments
Post a Comment