Intent.getExtras () devuelve siempre null

Estoy tratando de ejecutar una actividad a través de una notificación y evento onCreate Me gustaría "redirigir". A esto agregue un pensamiento sobre la información en la clase Intent . Una característica importante es que la clase que genera la notificación se realiza a través de un servicio. getApplicationContext el contexto del método getApplicationContext proporcionado por la clase android.app.Application . Cada vez que llamo al método getExtras() devuelve null . ¿Qué estoy haciendo mal?

 public class OXAppUpdateHandler { private void addNotification(Context context, int iconID, CharSequence tickerText, CharSequence title, CharSequence content) { CharSequence notificationTicket = tickerText; CharSequence notificationTitle = title; CharSequence notificationContent = content; long when = System.currentTimeMillis(); Intent intent = new Intent(context, MainActivity_.class); intent.setFlags( Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); intent.putExtra(OPEN_UPDATE_ACTIVITY_KEY, 1); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); NotificationManager notificationManager = (NotificationManager) context.getSystemService( Context.NOTIFICATION_SERVICE); Notification notification = new Notification(iconID, notificationTicket, when); notification.setLatestEventInfo(context, notificationTitle, notificationContent, pendingIntent); notificationManager.notify(NOTIFICATION_ID, notification); } public static boolean isUpdateStart(Intent intent) { Bundle bundle = intent.getExtras(); boolean result = bundle != null && bundle.containsKey(OPEN_UPDATE_ACTIVITY_KEY); if (result) { bundle.remove(OPEN_UPDATE_ACTIVITY_KEY); } return result; } } @EActivity(R.layout.activity_main) public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (OXAppUpdateHandler.isUpdateStart(getIntent())) { startActivity(new Intent(this, UpdateActivity_.class)); } } } 

Voy a asomarse por la ventana y adivinar que su problema está aquí:

 PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); 

Está pasando la intent de getActivity() y espera que obtendrá un PendingIntent que coincida con su Intent e incluye sus extras. Desafortunadamente, si ya hay un PendingIntent flotando en el sistema que coincide con su Intent ( sin tener en cuenta sus extras de Intent ), entonces getActivity() le devolverá ese PendingIntent en PendingIntent lugar.

Para ver si este es el problema, prueba esto:

 PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 

Esto dice que si ya hay un PendingIntent que coincida con su Intent en algún lugar del sistema que debe reemplazar los extras con los de su parámetro de intent .

(1) Compruebe aquí para asegurarse de que está utilizando los extras de put / get correctamente, ya que no veo el código en el que está agregando datos a la intención.

(2) Parece que no está llamando a obtener la intención y obtener más y, como resultado, no realmente conseguir nada del paquete (suponiendo que la información extists). Si está comprobando un valor booleano, debe obtener los datos que coloca en el paquete de la siguiente manera:

 Bundle bundle = getIntent().getExtras(); if (bundle.getBooleanExtra("WHATEVER"){ //whatever you want to do in here } 
  • Abra la cámara usando la intención
  • GetIntent (). GetStringExtra () muestra null
  • Cómo compartir una imagen con la aplicación de Google+ mediante Intent.ACTION_SEND y Intent.EXTRA_STREAM
  • Iniciar una aplicación desde otra aplicación en Android
  • ¿Qué sucede con la pila trasera al volver a abrir una actividad cuando launchMode = "singleTask"?
  • ¿Cómo puedo pasar URI con intención explícita?
  • La imagen adjunta de Android al correo electrónico no funciona
  • Filtro de intenciones para capturar todos los intentos de uso compartido
  • ¿Cómo obtengo datos adicionales de intenciones en Android?
  • Chooser Intent - Selección de galería o cámara
  • Iniciar intención "silenciosamente"
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.