0

在我接到电话或拨打电话后(以及其他未记录的中断),我的应用程序在恢复我的活动时会收到NullPointerException 。任何人都可以向我解释它在哪里和/或如何解决它?

我已经编写了如下所示的代码:

 @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 at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3655) at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java :3673) 在 android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3789) 在 android.app.ActivityThread.access$2400(ActivityThread.java:125) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2037 ) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:123) 在 android.app.ActivityThread.main(ActivityThread.java:4627) 在 java.lang .reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 在 dalvik.system.NativeStart.main(Native Method) 的 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 引起:java.lang.NullPointerException 在 MyApplication.displayActivity.onDestroy(displayActivity. java:74) 在 android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3642)

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

4

2 回答 2

3

步骤#1:找到displayActivity.java文件的第 74 行。

步骤#2:修复第 74 行的任何问题。

现在,堆栈跟踪表明第 74 行位于onDestroy(). 假设您上面列出的活动代码来自displayActivity,那么第 74 行必须是:

listview1.setAdapter(null);

这意味着listview1null。您既没有在上面列出的代码中声明也没有为这个数据成员赋值。

于 2010-10-30T07:51:37.630 回答
0

尝试在第一行设置一个 BPonDestroy并验证 vars/members 以找出哪个是null

于 2010-10-30T09:47:20.897 回答