I have application which is connected with webservice.
When I start application I call class:
public class CaApplication extends Application {
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
DataRetrieve dr ;
ProgressDialog progressBar;
progressBar = new ProgressDialog(this);
//progress bar orientation
progressBar.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
// Text that will appear on the progress bar dialog
progressBar.setMessage("Loading...");
//set whether the progress bar is cancelable or not
progressBar.setCancelable(false);
progressBar.show();
dr = new DataRetrieve();
}
}
I get Error:
11-25 15:39:36.698: E/AndroidRuntime(30429): Caused by: 11-25 15:39:36.698: E/AndroidRuntime(30429): java.lang.RuntimeException: Unable to create application com.example.storeclientdropdown.CambiumApplication: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
11-25 15:39:36.698: E/AndroidRuntime(30429): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3974)
11-25 15:39:36.698: E/AndroidRuntime(30429): at android.app.ActivityThread.access$1300(ActivityThread.java:127)
11-25 15:39:36.698: E/AndroidRuntime(30429): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
11-25 15:39:36.698: E/AndroidRuntime(30429): at android.os.Handler.dispatchMessage(Handler.java:99)
11-25 15:39:36.698: E/AndroidRuntime(30429): at android.os.Looper.loop(Looper.java:137)
11-25 15:39:36.698: E/AndroidRuntime(30429): at android.app.ActivityThread.main(ActivityThread.java:4441)
11-25 15:39:36.698: E/AndroidRuntime(30429): at java.lang.reflect.Method.invokeNative(Native Method)
11-25 15:39:36.698: E/AndroidRuntime(30429): at java.lang.reflect.Method.invoke(Method.java:511)
11-25 15:39:36.698: E/AndroidRuntime(30429): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
11-25 15:39:36.698: E/AndroidRuntime(30429): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
11-25 15:39:36.698: E/AndroidRuntime(30429): at dalvik.system.NativeStart.main(Native Method)
11-25 15:39:36.698: E/AndroidRuntime(30429): Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
11-25 15:39:36.698: E/AndroidRuntime(30429): at android.view.ViewRootImpl.setView(ViewRootImpl.java:517)
11-25 15:39:36.698: E/AndroidRuntime(30429): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:301)
11-25 15:39:36.698: E/AndroidRuntime(30429): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:215)
11-25 15:39:36.698: E/AndroidRuntime(30429): at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:140)
11-25 15:39:36.698: E/AndroidRuntime(30429): at android.app.Dialog.show(Dialog.java:278)
11-25 15:39:36.698: E/AndroidRuntime(30429): at com.example.storeclientdropdown.CambiumApplication.onCreate(CambiumApplication.java:35)
11-25 15:39:36.698: E/AndroidRuntime(30429): at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:969)
11-25 15:39:36.698: E/AndroidRuntime(30429): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3971)
11-25 15:39:36.698: E/AndroidRuntime(30429): ... 10 more
In DataRetrive I get all data from webservice and after that I call MainActivity.
What is wrong and how I can fix this bug. I try: progressBar = new ProgressDialog(this);, progressBar = new ProgressDialog(getApplicationContext());, progressBar = new ProgressDialog(getBaseContext); but no result.
Applicationis NOTContext, you cannot use it as a base for a Dialog.what you should do is in the MainActivity (meaning the first activity that runs) is to start the ProgressBar instead of doing this in the Application level.
try reading some of the great documentation in the developers site
EDIT:
from what I understand, you are trying to create a splash screen that will do work before the actual app starts.
this is a very simple thing to do and should be done like this: