我是Android编程的新手,我刚学会了如何通过notification
和Intent
制作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”更改为其他内容,但我不知道该怎么做。任何帮助将不胜感激!
答案 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