单击通知而不启动Android活动

时间:2015-06-25 11:04:14

标签: android android-notifications android-pendingintent

我是Android编程的新手,我刚学会了如何通过notificationIntent制作PendingIntent。我想知道是否可以点击此通知(链接到我的MainActivity)而无需启动新的Activity

这就是我现在(AlarmReceiver排除在内)MainActivity中的一项功能:

Intent alarmIntent = new Intent(this, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, 0);
AlarmManager manager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
manager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);

我估计我应该将“this”更改为其他内容,但我不知道该怎么做。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:2)

您可以使用通知构建器,在我的情况下是compat构建器。

 NotificationCompat.Builder

设置内容,我从params获得了我的内容。你必须用尊重的替换它们。

builder.setContentTitle(params.getTitle())
            .setContentText(params.getText())
            .setWhen(params.getTime())
            .setTicker(params.getTickerText())
            .setPriority(params.getPriority())
            .setOngoing(params.isOngoing())
            .setOnlyAlertOnce(true)
            .setAutoCancel(params.getAutoCancel())
            .setStyle(params.getStyle());

创建PendingIntent并通过构建器将其添加到Notification中。此意图应指向您的Launcher活动,然后您可以在OnCreate中处理它。

 builder.setContentIntent(pendingIntent);

然后按下通知

 mNotificationManager.notify(id, notification);

您还可以将这些通知指向BroadCastReceiver,并通过onReceive方法处理来自那里的通知。

答案 1 :(得分:0)

       Intent alarmIntent = new Intent(this, MainActivity.class);
      PendingIntent intent = PendingIntent.getActivity(this, 0,
       alarmIntent , PendingIntent.FLAG_UPDATE_CURRENT);
       AlarmManager manager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
     Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(System.currentTimeMillis());
    manager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),    pendingIntent); ...try this