У меня есть следующий код для отправки уведомления...
private void publishNotification(Intent intent, String header, String content){
try {
NotificationManager manager = getNotificationManager();
Notification notification = new Notification(R.drawable.droid, header, System.currentTimeMillis());
if(intent != null){
PendingIntent pendingIntent = PendingIntent.getService(this, 0, intent, Intent.FLAG_ACTIVITY_NEW_TASK);
notification.setLatestEventInfo(this, header, content, pendingIntent);
}
manager.notify(0, notification);
} catch (Exception ex) {
FileManager.writeToLogFile(this.getClass(), "publishNotification", LogMessageType.ERROR, ex.getMessage());
}
}
И следующий код, который вызывает его...
Intent intent = new Intent();
intent.setAction(DevicePolicyManager.ACTION_SET_NEW_PASSWORD);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
publishNotification(intent, "Default Password Changed", "Device configuration have changed.\nClick here to change this password.");
Моя проблема заключается в следующем...
Уведомление появляется в уведомлении и даже после его спуска. Проблема в том, что при нажатии этого уведомления активность не запускается. Я думаю, что я сделал все, что упоминалось в уроке. Что я делаю не так?
Если вы хотите запустить мероприятие, вы должны использовать PendingIntent.getActivity()
вместо PendingIntent.getService()
.
Intent intent = new Intent(context, class_name.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
а также использовать PendingIntent.getActivity()
вместо PendingIntent.getService()
.