Actividad onNewIntent Excepción de puntero nulo

Inicializo mis listas en mi actividad onCreate () como a continuación:

private List<MyItem> filtered; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_dashboard); filtered = new ArrayList<>(); // more things } 

Y cuando intento utilizar los elementos filtrados de onNewIntent a veces obtengo una excepción de puntero nulo.

  @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); filtered.clear(); } 

¿Cómo podría ser posible?

Editar: El modo de inicio de Mi actividad es SingleTask

Editar 2:

No puedo enviar más registros útiles porque este fallo está en producción. Sólo consigo algunos registros de tela.

Gracias por tu ayuda pero no puedo pegar la causa del código entero de privacidad.

Creo que tengo un problema en el uso SingleTask-OnCreate-OnNewIntent. Simplemente estoy tratando de abrir mi aplicación de la notificación con un parámetro decide qué fragmento se abrirá cuando el usuario navega a la actividad.

¿Tiene ejemplos sobre esto que contiene implementaciones SingleTask-OnCreate-OnNewIntent?

Gracias a todos por su ayuda.

El equipo de Open Whisper Systems encontró el mismo problema:

https://github.com/WhisperSystems/Signal-Android/issues/2971

Ellos piensan que es causado por el framework Android llamando onNewIntent() muy poco después de onCreate() , incluso si llamas finish() desde dentro de tu onCreate() . Esto hace que null objetos null se utilicen en onNewIntent() y, a continuación, NullPointerException , ya que los objetos no se han configurado en el onCreate() habitual onCreate() . Parece ser un escenario raro o una condición de carrera entre onCreate() y onNewIntent() .

Parece que lo han arreglado revisando isFinishing() en onNewIntent() para evitar que onNewIntent() continúe:

 @Override protected void onNewIntent(Intent intent) { Log.w(TAG, "onNewIntent()"); if (isFinishing()) { Log.w(TAG, "Activity is finishing..."); return; } ... } 

Fuente 1: https://github.com/SilenceIM/Silence/commit/c0acae1124c0c066fd961d21d3ec9b989574125d

Fuente 2: https://github.com/SilenceIM/Silence/blob/master/src/org/smssecure/smssecure/ConversationActivity.java#L223

Mantenga el ciclo de vida en mente, tal vez usted está regresando a su actividad desde algún punto donde onCreate () no se llama (por ejemplo, si ha establecido launchMode = singleTask o algo en su manifiesto). Tal vez inicializar / repoblar su ArrayList en onResume () y también comprobar si no es nulo, en Resume () se llama con seguridad cuando vuelva a su actividad.

Si está recibiendo NullPointerException en el método onNewIntent() probablemente el objeto filtered sea ​​nulo.

Prueba de esta manera

 @Override protected void onNewIntent(Intent intent) { //Check for null value and then proceed. if(filtered != null) filtered.clear(); } 
  • Service.startForeground () lanza NullPointerException cuando se ejecuta con ServiceTestCase
  • Android 4.0.3 ScrollingTabContainerView NullPointerException
  • Cambiar a un fragmento específico da extraño java.lang.NullPointerException
  • DialogFragment: NullPointerException (biblioteca de soporte)
  • El botón puede producir una excepción de puntero nulo (Android Studio)
  • Errores que ejecutan el constructor 'Administrador de recursos de Android' en ADT
  • java.lang.NullPointerException: Intenta invocar el método de interfaz 'OnColorChangeListener.colorChanged (java.lang.String)' en una referencia de objeto nulo
  • NullPointerException en getReseources () Bitmap Array
  • Excepción de puntero nulo iniciando IntentService
  • NullPointerException en findViewById () en android
  • Error de inicio de Android Studio v1.2.0: java.lang.NullPointerException
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.