когда вы получаете широковещательное сообщение от NotificationManager, вы должны создать новый PendingIntent, который будет запущен, когда пользователь коснется соответствующего уведомления. Теперь PendingIntent должен иметь внутреннее намерение, которое будет выполнять какое-либо действие, например, запускать действие.
в вашем методе "onReceive" при вызове BroadcastReceiver вспомогательного метода, такого как "showProximityAlertNotification"
@Override
public void onReceive(Context context, Intent intent) {
showProximityAlertNotification();
}
//now when the user touch the notification on the notification bar, an activity named //"ItemListActivity" will be launched. You can put an IntentFilter, a Category, an Action
//to perform any different operations within your activity
private void showProximityAlertNotification( ){
String titulo = getString(R.string.notification_proximity_alerts_fired_title);
String tickerText = getString(R.string.notification_proximity_alerts_fired_ticker);
String contextText = getString(R.string.notification_proximity_alerts_fired_content);
int icon = R.drawable.wk_logo;
long when = System.currentTimeMillis();
Notification notification = new Notification(icon, tickerText, when);
//define the actions to perform when user touch the notification
Intent launchApp = new Intent(getApplicationContext(), ItemListActivity.class);
launchApp.putExtra("com.xxxxxxx.xxxxxxxxx.bean.Item", "anyObjectYouWant");
launchApp.setAction( "VIEW_DETAILS_PROPERTY" );
PendingIntent launchNotification = PendingIntent.getActivity(getApplicationContext(), 0, launchApp, 0);
notification.setLatestEventInfo(getApplicationContext(), titulo, contextText, launchNotification);
notificationManager.notify(NOTIFICATION_ID_PROXIMITY_ALERT_FIRED, notification);
}
если вы выполняете только что запущенное действие и хотите отменить запущенное уведомление, просто сделайте следующее:
String notManagerName = Context.NOTIFICATION_SERVICE;
NotificationManager notificationManager = (NotificationManager) getSystemService(notManagerName);
notificationManager.cancel(ProximityAlerts.NOTIFICATION_ID_PROXIMITY_ALERT_FIRED);
ура