Ich versuche, Informationen von der Benachrichtigung zu aufgerufenen Aktivität zu senden, während von meiner Aktivität ich null.Android Benachrichtigung PendingIntent Extras null
Der Code für die Benachrichtigung ist:
private void showNotification() {
Intent resultIntent = new Intent(this, MainActivity.class);
if (D)
Log.d(TAG, "Id: " + Id);
resultIntent.putExtra("ineedid", deviceId);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(MeterActivity.class);
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,
PendingIntent.FLAG_UPDATE_CURRENT);
// Bundle tmp = resultIntent.getExtras();
// if (tmp == null) {
// Log.d(TAG, "tmp bundle is null");
// } else {
// long id = tmp.getLong("ineedid", -1);
// Log.d(TAG, "tmp id : " + id);
// }
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
BLEMessengerService.this)
.setSmallIcon(R.drawable.ic_action_search)
.setContentTitle("Event tracker")
.setContentText("Events received").setOngoing(true)
.setContentIntent(resultPendingIntent)
.setWhen(System.currentTimeMillis());
int mId = R.string.service_notification_start_service;
mNM.notify(mId, mBuilder.getNotification());
}
-Code für Informationen aus Absicht in Haupttätigkeit zu erhalten;
Bundle extras = getIntent().getExtras();
if (extras != null) {
long deviceID = getIntent().getLongExtra("ineedid",
-1);
if (ID == -1) {
if (D)
Log.i(TAG_D, "Wrong Id received.");
finish();
} else {
device = dataSource.getDeviceByID(deviceID);
if (D)
Log.i(TAG_D, "Get the id.");
}
} else {
if (D)
Log.d(TAG_D, "Bundle is null");
finish();
}
Ich habe überprüft, bevor die Benachrichtigung benachrichtigt werden, Bundle ist nicht null, und es hat ID in Extras. Während ich versuchte, es aus der Absicht zu holen, ist es weg. Hilfe.
Ich habe auch versucht, "resultIntent.addFlags (Intent.FLAG_ACTIVITY_SINGLE_TOP);", aber keine Arbeit. – antonio081014
Gibt es einen Grund, warum Sie 'resultPendingIntent.getExtras()' nicht verwenden? – PearsonArtPhoto
Ich habe gerade diese Zeilen gemacht, um zu überprüfen, ob mein pendingIntent Extras hat, und ich habe verifiziert, dass es das hat, was ich dort hingelegt habe. – antonio081014