¿Por qué la variable estática de mi aplicación Android a veces se devuelve nula?

Estoy tratando de obtener valor de SharedPreferences y almacenarlo dentro de una variable estática. El problema es a veces que estoy recibiendo valor nulo de variable estática, pero SharedPreferences tiene valor. He almacenado el valor a través de este proceso:

SharedPreferences sp = u.returnShare(); SharedPreferences.Editor editor = sp.edit(); StaticVariables.userId = sp.getString("UserId", "default"); 

    No utilice variables estáticas, su mala práctica. Android puede destruir el proceso de la aplicación en cualquier momento y posteriormente recrearlo recreando actividades según sea necesario. Si está creando su variable estática en la actividad "primera", entonces no se inicializará cuando se inicie primero la segunda o la tercera.

    Las variables estáticas no son un buen almacenamiento a largo plazo en android. El sistema puede matar la aplicación en cualquier momento cuando está en segundo plano (por ejemplo, cuando la memoria es necesaria para otras tareas). Todos los valores almacenados en variables estáticas desaparecen cuando se reinicia la aplicación.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.