Сбой приложения после получения телефонного звонка или таких прерываний - PullRequest
0 голосов
/ 30 октября 2010

После того, как я получу телефонный звонок или сделаю его (и другие недокументированные прерывания), мое приложение получит 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 в android.app.ActivityThread.performDestroyActivity (ActivityThread.java:3655) в android.app.ActivityThread.handleDestroyjctivity (: 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 (собственный метод) в 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) в dalvik.system.NativeStart.main (собственный метод). Вызывается: java.lang.NullPointerException в MyApplication.displayActivity.onDestroy (displayActivity.java:74) на android.app.ActivityThread.performDestroyActivity (ActivityThread.java:3642)

сейчас, пожалуйста, помогите мне решить эту проблему, как мне справиться с телефономзвонок или смс получен или такие перерывы?

Ответы [ 2 ]

3 голосов
/ 30 октября 2010

Шаг # 1: Найти строку 74 из файла displayActivity.java.

Шаг № 2: Исправьте все проблемы в строке 74.

Теперь трассировка стека предполагает, что строка 74 находится в onDestroy(). Предполагая, что код активности, который вы перечислили выше, взят из displayActivity, тогда строка 74 должна быть:

listview1.setAdapter(null);

Это означает, что listview1 - это null. Вы не объявляете и не присваиваете значение этому элементу данных в коде, который вы перечислили выше.

0 голосов
/ 30 октября 2010

попробуйте установить BP в первой строке onDestroy и проверить параметры / члены, чтобы найти, какой из них является null

...