Я написав простий додаток для Android, який показує власне сповіщення, подібне до цього:
Context context = getApplicationContext();
NotificationManager manager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
Notification notification = new Notification( R.drawable.icon, title, System.currentTimeMillis());
Intent notificationIntent = new Intent( context, this.getClass());
notificationIntent.putExtra("com.mysecure.lastpage", "SECURECODE");
PendingIntent pendingIntent = PendingIntent.getActivity( context , 0, notificationIntent, 0);
notification.flags = notification.flags | Notification.FLAG_ONGOING_EVENT;
notification.contentView = new RemoteViews(context.getPackageName(), R.layout.notifypbar);
notification.contentIntent = pendingIntent;
notification.contentView.setTextViewText(R.id.notifypb_status_text, text);
notification.contentView.setProgressBar(R.id.notifypb_status_progress, 100, (int)(100*progress), false);
manager.notify(104, notification);
Цей фрагмент коду називається ТІЛЬКИ РОДИНО в моєму додатку, і він відображає сповіщення з індикатором виконання (все правильно).
Тепер, коли користувач натискає це повідомлення, моя програма обробляє onResume
подію.
public void onResume()
{
super.onResume();
// TODO: Extras è SEMPRE NULL!!! impossibile!
Intent callingintent = getIntent();
Bundle extras = callingintent.getExtras();
але додаткові послуги завжди НУЛЬ!
Я спробував будь-яку комбінацію:
notificationIntent.putExtra("com.mysecure.lastpage", "SECURECODE");
або
Bundle extra = new Bundle();
extra.putString(key, value);
notificationIntent.putExtra(extra);
але getIntent (). getExtras () завжди повертає NULL.