I extended to Application class with my own data class. It is used to store global objects in my app and make them accessible by all Acitivites. I would like this class, when initialized on application run, to download data from the internet via AsyncTask. How can I show/hide a ProgressDialog within AsyncTask, which requires me to pass the correct Context/Activity to it?
public class DataSource extends Application{
    private int userid;
    private Object[] orders;
    //initialize
    @Override
    public void onCreate() {
        // Pull data from the internet and store it in orders
        super.onCreate();
    }
    public void beginDataLoad(Activity callingActivity) {
        // HOW DO I PASS THE CORRECT ACTIVITY TO MY NEW downloadData OBJECT?
        downloadData task = new downloadData(callingActivity);
        task.execute(new String[] { "http://www.myurl.com" });
    }
    private class downloadData extends AsyncTask<String, Void, String>{
        private ProgressDialog progressDialog;
        private MainActivity activity;
        public downloadData(MainActivity activity) {
            this.activity = activity;
            this.progressDialog = new ProgressDialog(activity);
        }
        protected void onPreExecute() {
            progressDialog.setMessage("Downloading events...");
            progressDialog.show();
        }
        protected String doInBackgroun(String... params) {
            // Do AsyncTask download functions in background...
        }
        protected void onPostExecute() {
            progressDialog.dismiss();
            //Callback function in MainActivity to indicate data is loaded
            activity.dataIsLoaded();
        }
    }
}
