我有一個MainActivity它增加了片段「A」,在片段「A」我送使用volley.I一些服務器的請求作出了被稱爲DialogUtil一類包含進度對話框implementation.Problem是,當我啓動應用程序它顯示在片段進度對話框實現 「A」。那是錯誤android在進度對話框中出錯?
java.lang.IllegalArgumentException異常: 查看= com.android.internal.policy.impl.PhoneWindow $ {DecorView 42759d68 VE .... [R ...... D 0,0-456,144}不附加在窗口管理器上, 變得強制關閉。
DialogUtil類代碼: -
public class DialogUtils {
public static ProgressDialog showProgressDialog(Context context, String message) {
ProgressDialog m_Dialog = new ProgressDialog(context);
m_Dialog.setMessage(message);
m_Dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
m_Dialog.setCancelable(false);
m_Dialog.show();
return m_Dialog;
}
}
進展片段 「A」
m_Dialog = DialogUtils.showProgressDialog(getContext(), "Loading...");
final String m_DealListingURL = "http://202.131.1.132:8080/ireward/rest/json/metallica/getDealListInJSON";
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, m_DealListingURL, jsonObject, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.i(TAG, "Server Response:-" + response);
if (m_Dialog != null && m_Dialog.isShowing()) {
m_Dialog.dismiss();
}
相反的getContext的()通過getActivity() –
1。同樣的問題。我也有每日5到10次的用戶崩潰郵件的這個錯誤。我使用getActivity()但沒有成功。 – user392117
嗨。 在片段中,您應該使用getActivity(),如上所述。 在我DialogUtils方法,我的第一行總是 如果(活動== NULL || activity.isFinishing())回報; 對話框在片段內使用時可以拋出NPE,如果它們被異步調用。 – Lev