Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.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
Java 恢复活动时出现Android ProgressDialog错误_Java_Android - Fatal编程技术网

Java 恢复活动时出现Android ProgressDialog错误

Java 恢复活动时出现Android ProgressDialog错误,java,android,Java,Android,在我的活动中启动进度对话框时,一切正常。 按下对话框上的“后退”按钮以恢复活动后,我收到一个错误:“无法添加窗口标记”。BindeProxy@b6483550无效,您的活动正在运行吗?”。 当我想完成此活动时,是否有方法关闭进度对话框,然后在下次启动此活动时再次显示 我的代码: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mFaceb

在我的
活动
中启动
进度对话框
时,一切正常。 按下对话框上的“后退”按钮以恢复
活动后,我收到一个错误:“无法添加窗口标记”。BindeProxy@b6483550无效,您的活动正在运行吗?”。
当我想完成此
活动时,是否有方法关闭
进度对话框
,然后在下次启动此
活动时再次显示

我的代码:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mFacebook = new Facebook(APP_ID);
    mAsyncRunner = new AsyncFacebookRunner(mFacebook);
    SessionStore.restore(mFacebook, this);
    setContentView(R.layout.login_view);
    mLoginButton = (LoginButton) findViewById(R.id.login);
    SessionEvents.addAuthListener(new SampleAuthListener());
    mLoginButton.init(this, mFacebook);
}

@Override
public void onResume () {
    super.onResume();
}

@Override
public void onPause () {
    super.onPause();
}

public class SampleAuthListener implements AuthListener {

    public void onAuthSucceed() {
        TheGaffer.this.progressDialog = ProgressDialog.show(TheGaffer.this, "Loading", "Please wait...");
        Bundle params = new Bundle();
        params.putString("fields", "name,id");
        mAsyncRunner.request("me", params, new LoginRequestListener());
    }

    public void onAuthFail(String error) {
        Toast.makeText(getApplicationContext(), error,
                Toast.LENGTH_LONG).show();
    }
}

public class LoginRequestListener implements RequestListener {

    public void onComplete(final String response, final Object state) {
        try {
            JSONObject jsonObjSend = new JSONObject();
            JSONObject json = Util.parseJson(response);
            final String fbid = json.getString("id");
            jsonObjSend.put("fbid", json.getString("id"));
            jsonObjSend.put("username", json.getString("name"));
            jsonObjSend.put("playerPhoto", "http://graph.facebook.com/"+ json.getString("id") +"/picture");
            HttpClient.SendHttpPost("/user_profiles/registerUser", jsonObjSend);
            TheGaffer.this.runOnUiThread(new Runnable() {
                public void run() {
                    if (TheGaffer.this.progressDialog != null) {
                        TheGaffer.this.progressDialog.dismiss();
                    }
                    Intent intent = new Intent(TheGaffer.this, TeamActivity.class);
                    intent.putExtra("fbid", fbid);
                    startActivity(intent);
                }
            });
        } catch (JSONException e) {
            Log.w("Facebook-Example", "JSON Error in response");
        } catch (FacebookError e) {
            Log.w("Facebook-Example", "Facebook Error: " + e.getMessage());
        }
    }

    public void onFacebookError(FacebookError e, final Object state) {
        Log.e("Facebook", e.getMessage());
        e.printStackTrace();
    }

    public void onFileNotFoundException(FileNotFoundException e,
                                        final Object state) {
        Log.e("Facebook", e.getMessage());
        e.printStackTrace();
    }

    public void onIOException(IOException e, final Object state) {
        Log.e("Facebook", e.getMessage());
        e.printStackTrace();
    }

    public void onMalformedURLException(MalformedURLException e,
                                        final Object state) {
        Log.e("Facebook", e.getMessage());
        e.printStackTrace();
    }
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  
{
     if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0)
     {
        TheGaffer.this.progressDialog = null;
        finish();
        return true;
     }
    return super.onKeyDown(keyCode, event);
}
}你必须打电话

prgDialog.disclose()


当你想放弃它的时候。然后,由于进度对话框试图在已关闭的活动上显示自己,因此该错误将不会出现。
在显示对话框、进度条之前,请检查
isFinished()