在我接到电话或拨打电话(以及其他未记录的中断)后,我的应用程序在恢复活动时会收到 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;
}
}
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.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) at java.lang.reflect.Method.invokeNative(Native Method) 在java.lang.reflect.Method.invoke(Method.java:521) 在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:868) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) at dalvik.system.NativeStart.main(Native Method) 引起:java.lang.NullPointerException at MyApplication.displayActivity.onDestroy(displayActivity.java:74) 在android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3642)
现在,请帮助我解决这个问题,如何处理电话或收到的短信或此类中断?
答案 0 :(得分:3)
步骤1:找到displayActivity.java
文件的第74行。
步骤2:解决第74行的问题。
现在,堆栈跟踪表明第74行位于onDestroy()
。假设您上面列出的活动代码来自displayActivity
,那么第74行必须是:
listview1.setAdapter(null);
这意味着listview1
为null
。您既不会在上面列出的代码中声明也不会为此数据成员分配值。
答案 1 :(得分:0)
尝试在onDestroy
的第一行设置BP并验证vars /成员以查找哪一个null