【问题标题】:Pressing home button while Progress Dialog was showing throws exception在显示进度对话框时按主页按钮会引发异常
【发布时间】:2011-03-18 07:30:07
【问题描述】:

我发送了一个服务器请求并向用户显示了一个带有以下属性的进度对话框

waitDialog = new ProgressDialog(this);
        waitDialog.setMessage(getText(R.string.msg_plz_wait));
        waitDialog.setIndeterminate(true);
        waitDialog.show(); 

Step1:发送服务器请求

第二步:向用户展示一个对话框

第 3 步:用户在对话框可见并显示时按下主页按钮

Step4:数据来自服务器传递给列表适配器,但找不到资源并抛出资源未找到异常处理,然后ProgressDialog抛出以下异常。

03-18 12:18:11.050: ERROR/AndroidRuntime(15113): FATAL EXCEPTION: main
03-18 12:18:11.050: ERROR/AndroidRuntime(15113): java.lang.NullPointerException
03-18 12:18:11.050: ERROR/AndroidRuntime(15113):     at android.widget.AbsListView.obtainView(AbsListView.java:1432)
03-18 12:18:11.050: ERROR/AndroidRuntime(15113):     at android.widget.ListView.makeAndAddView(ListView.java:1745)
03-18 12:18:11.050: ERROR/AndroidRuntime(15113):     at android.widget.ListView.fillDown(ListView.java:670)
03-18 12:18:11.050: ERROR/AndroidRuntime(15113):     at android.widget.ListView.fillFromTop(ListView.java:727)
03-18 12:18:11.050: ERROR/AndroidRuntime(15113):     at android.widget.ListView.layoutChildren(ListView.java:1598)
03-18 12:18:11.050: ERROR/AndroidRuntime(15113):     at android.widget.AbsListView.onLayout(AbsListView.java:1260)
03-18 12:18:11.050: ERROR/AndroidRuntime(15113):     at android.view.View.layout(View.java:7175)
03-18 12:18:11.050: ERROR/AndroidRuntime(15113):     at android.widget.RelativeLayout.onLayout(RelativeLayout.java:912)
03-18 12:18:11.050: ERROR/AndroidRuntime(15113):     at android.view.View.layout(View.java:7175)
03-18 12:18:11.050: ERROR/AndroidRuntime(15113):     at android.widget.RelativeLayout.onLayout(RelativeLayout.java:912)
03-18 12:18:11.050: ERROR/AndroidRuntime(15113):     at android.view.View.layout(View.java:7175)
03-18 12:18:11.050: ERROR/AndroidRuntime(15113):     at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
03-18 12:18:11.050: ERROR/AndroidRuntime(15113):     at android.view.View.layout(View.java:7175)
03-18 12:18:11.050: ERROR/AndroidRuntime(15113):     at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
03-18 12:18:11.050: ERROR/AndroidRuntime(15113):     at android.view.View.layout(View.java:7175)
03-18 12:18:11.050: ERROR/AndroidRuntime(15113):     at android.view.ViewRoot.performTraversals(ViewRoot.java:1140)
03-18 12:18:11.050: ERROR/AndroidRuntime(15113):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1859)
03-18 12:18:11.050: ERROR/AndroidRuntime(15113):     at android.os.Handler.dispatchMessage(Handler.java:99)
03-18 12:18:11.050: ERROR/AndroidRuntime(15113):     at android.os.Looper.loop(Looper.java:123)
03-18 12:18:11.050: ERROR/AndroidRuntime(15113):     at android.app.ActivityThread.main(ActivityThread.java:3683)
03-18 12:18:11.050: ERROR/AndroidRuntime(15113):     at java.lang.reflect.Method.invokeNative(Native Method)
03-18 12:18:11.050: ERROR/AndroidRuntime(15113):     at java.lang.reflect.Method.invoke(Method.java:507)
03-18 12:18:11.050: ERROR/AndroidRuntime(15113):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
03-18 12:18:11.050: ERROR/AndroidRuntime(15113):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
03-18 12:18:11.050: ERROR/AndroidRuntime(15113):     at dalvik.system.NativeStart.main(Native Method)

【问题讨论】:

    标签: android exception listview adapter progressdialog


    【解决方案1】:

    恕我直言,它与 ProgressDialog 无关,但由列表视图引起,根据您的问题,我只能说这些。

    【讨论】:

      【解决方案2】:

      这不是你的进度对话框。

      这是你正在做的事情,在你的服务器请求准备好之后。

      如果用户不按主页按钮会发生什么?问题仍然存在吗?

      【讨论】:

      • 如果没有进度对话框并且用户按下主页按钮,是否会出现问题?
      • 你在你的代码中使用了dismissDialog()?也许这就是问题所在。因为对话框正在使用上下文,如果用户按下主页按钮,则称为对话框的活动上下文将为空。这会导致空指针异常
      • 让我用 try catch 块包围它。我正在使用 dialog.dismiss()
      • 我正在以另一种方式进行。我正在成员中保存对上下文的引用。因此,您可以证明活动上下文是否为空。如果不是你可以调用dismiss(),否则你什么也不做
      【解决方案3】:

      你试过waitDialog.setCancelable(false)吗?这有什么不同吗?

      【讨论】:

      • 不,没有任何区别。
      猜你喜欢
      • 2013-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-02
      • 1970-01-01
      相关资源
      最近更新 更多