Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 进度条有时给出空指针_Android_Android Progressbar - Fatal编程技术网

Android 进度条有时给出空指针

Android 进度条有时给出空指针,android,android-progressbar,Android,Android Progressbar,我已经做了一个方法来显示进度条。它工作正常,但有时我的应用程序强制关闭。我不知道为什么会发生这种情况 代码 LOGCAT 08-28 16:15:51.665 8477-8477/? E/AndroidRuntime﹕ FATAL EXCEPTION: main android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@42186fd0 is

我已经做了一个方法来显示进度条。它工作正常,但有时我的应用程序强制关闭。我不知道为什么会发生这种情况

代码

LOGCAT

08-28 16:15:51.665    8477-8477/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
    android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@42186fd0 is not valid; is your activity running?
            at android.view.ViewRootImpl.setView(ViewRootImpl.java:664)
            at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:248)
            at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
            at android.app.Dialog.show(Dialog.java:281)
            at example.com.pocketdocs.CommonFunctions.CommonFunctions.showProgress(CommonFunctions.java:111)
            at example.com.pocketdocs.Group.ContactListFragment$contactSyncAsync.onPreExecute(ContactListFragment.java:163)
            at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:586)
            at android.os.AsyncTask.execute(AsyncTask.java:534)
            at example.com.pocketdocs.Group.ContactListFragment.onActivityCreated(ContactListFragment.java:69)
            at android.app.Fragment.performActivityCreated(Fragment.java:1703)
            at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:903)
            at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1057)
            at android.app.BackStackRecord.run(BackStackRecord.java:694)
            at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1435)
            at android.app.FragmentManagerImpl$1.run(FragmentManager.java:441)
            at android.os.Handler.handleCallback(Handler.java:800)
            at android.os.Handler.dispatchMessage(Handler.java:100)
            at android.os.Looper.loop(Looper.java:194)
            at android.app.ActivityThread.main(ActivityThread.java:5370)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
            at dalvik.system.NativeStart.main(Native Method)

我写的代码是正确的还是必须进行更改?

设置此条件,它应该可以工作

if(!((Activity) context).isFinishing())
{
          if (progressDialog == null) {
        progressDialog = new ProgressDialog(context);
        progressDialog.setMessage(msg);
        progressDialog.setCancelable(false);
    }

    if (isVisible) {
        progressDialog.show();
    } else if (isVisible == false) {
        if (progressDialog.isShowing()) {
            progressDialog.dismiss();
        }
    }
}

您需要一个
活动
作为
上下文
来显示对话框。如果您尝试使用非活动上下文,例如
应用程序

则会出现此异常,logcat中的错误是什么?你能发布堆栈跟踪吗?请发布堆栈跟踪trace@ZInj我已经编辑了我的post@user3917131编辑。检查并让我知道这段代码是否适用于片段??因为我在我的应用程序中使用片段
if(!((Activity) context).isFinishing())
{
          if (progressDialog == null) {
        progressDialog = new ProgressDialog(context);
        progressDialog.setMessage(msg);
        progressDialog.setCancelable(false);
    }

    if (isVisible) {
        progressDialog.show();
    } else if (isVisible == false) {
        if (progressDialog.isShowing()) {
            progressDialog.dismiss();
        }
    }
}