Приложение разбилось после получения телефонного звонка или таких прерываний
-
27-09-2019 - |
Вопрос
После того, как я либо получаю телефонный звонок или сделать один, (и другие недокументированные прерывания) Мое приложение получает Исключение нулевого указателя при возобновлении моей деятельности. Может ли любое объяснить мне, где это и / или как это исправить?
Я написал код, как показано ниже:
@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.actixtivityTriex.performdestroyActivity (ActivityThread.java:3655) на Android.app.activity (ActivityThread.java : 3673) в Android.App.activityTrieDead.handlerelaunchactivity (ActivityThread.java:3789) на Android.app.activityTrieD.Access $ 2400 (ActivityThread.java:125) в Android.App.activityTrieThreads $ h.java: 2037 ) на Android.Os.handler.dispatchMessage (Handler.java:99) в Android.Os.looper.loop (looper.java:123) на android.app.activitytrytread.main (Activitythread.java:4627) .reflect.method.invebalativative (родной метод) на java.lang.reflect.method.invoke (method.java:521) на com.android.internal.os.zygoteinit $ methodandargscaller.run (zygoteinit.java:868) в ком .android.innernal.os.zygoteinit.main (zygoteinit.java:626) в dalvik.system.nativeStart.main (родной метод), вызванный: java.lang.nullpoin terexception при myApplication.displayActivity.ondestroy (DisplayActivity.java:74) на Android.app.activityTrieD.performDestryActivity (ActivityThread.java:3642)
Теперь, пожалуйста, помогите мне решить эту проблему, как обращаться с телефонным звонком или полученным SMS или таким видом прерываний?
Решение
Шаг № 1: Найти строку 74 displayActivity.java
файл.
Шаг № 2: Исправьте любую проблему на линии 74.
Теперь трассировка стека говорит о том, что линия 74 в onDestroy()
. Отказ Предполагая, что код деятельности, который вы указали выше, от displayActivity
, Тогда линия 74 должна быть:
listview1.setAdapter(null);
Это означает listview1
является null
. Отказ Вы не объявляете и не назначаете значение этого элемента данных в коде, который вы перечислены выше.
Другие советы
попробуйте установить BP на первой строке onDestroy
и проверяйте vars / участники, чтобы найти, какой из них null