代码之家  ›  专栏  ›  技术社区  ›  Paresh Mayani jeet

应用程序在接到电话或此类中断后崩溃

  •  0
  • Paresh Mayani jeet  · 技术社区  · 14 年前

    在我接到一个电话或打了一个电话(以及其他未经记录的干扰)之后,我的应用程序得到一个 当我恢复活动时。有什么能告诉我它在哪里和/或如何修理它吗?

    我已经写了如下代码:

     @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.displayActivity);
            new performBackgroundTask().execute();
      }
    
      @Override
      public void onDestroy()
      {
        listview1.setAdapter(null);
        super.onDestroy();
      }
    
      private class performBackgroundTask extends AsyncTask <Void, Void, Void>  
      {
               private ProgressDialog Dialog = new ProgressDialog(displayActivity.this);
    
               protected void onPreExecute()
               {
                   Dialog.setMessage(getString(R.string.dialog_wait_message));
                   Dialog.show();
               }
    
               protected void onPostExecute(Void unused)    
               {
                   Dialog.dismiss();    
                   // displaying all the fetched data
               }
    
               @Override
                protected Void doInBackground(Void... params) 
                {
                     // fetching data from web using HTTPGet method 
                    return null;   
            }
      }
    

    Logcat输出为:

    java.lang.RuntimeException:无法销毁活动{myApplication/myApplication.displayActivity}:java.lang.NullPointerException 在android.app.ActivityThread.performDestroyActivity上(ActivityThread.java:3655) 在android.app.ActivityThread.handleDestroyActivity上(ActivityThread.java:3673) 在android.app.ActivityThread.handleRelaunchActivity上(ActivityThread.java:3789) 在android.app.ActivityThread.access$2400(ActivityThread.java:125) 在android.os.Handler.dispatchMessage上(Handler.java:99) 在android.os.Looper.loop上(Looper.java:123) 在java.lang.reflect.Method.invokenactive(本机方法) 在java.lang.reflect.Method.invoke上(Method.java:521) 在com.android.internal.os.zygenetinit$MethodAndArgsCaller.run上(zygenetinit.java:868) 在com.android.internal.os.zygenetinit.main上(zygenetinit.java:626) 在dalvik.system.NativeStart.main(本地方法) 原因:java.lang.NullPointerException 在MyApplication.displayActivity.ondestory(displayActivity.java:74) 在android.app.ActivityThread.performDestroyActivity上(ActivityThread.java:3642)

    现在,请帮助我解决这个问题,我如何处理电话或短信收到或此类干扰?

    2 回复  |  直到 14 年前
        1
  •  3
  •   CommonsWare    14 年前

    步骤1:找到 displayActivity.java

    第2步:解决第74行的任何问题。

    现在,堆栈跟踪显示第74行 onDestroy() displayActivity ,则第74行必须是:

    listview1.setAdapter(null);
    

    那意味着 listview1 null . 在上面列出的代码中,既不声明也不为该数据成员赋值。

        2
  •  0
  •   Asahi    14 年前

    尝试在 onDestroy null