Articles of android pendingintent

停止Android报警pipe理器的setrepeat

我已经创build了如下所示的闹钟 Intent intent = new Intent(this, Areceiver.class); PendingIntent sender = PendingIntent.getBroadcast(this, 1234567, intent, 0); AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); am.setRepeating(AlarmManager.RTC_WAKEUP, timenow, 3000, sender); 我创build了一个button来停止报警。 在onclick方法我写了下面的代码 Intent intentstop = new Intent(this, Areceiver.class); PendingIntent senderstop = PendingIntent.getBroadcast(this, 0, intentstop, 0); AlarmManager alarmManagerstop = (AlarmManager) getSystemService(ALARM_SERVICE); alarmManagerstop.cancel(senderstop); 但工作并没有停止。 可能是什么问题?

对AlarmManager.setRepeating的多个调用提供了相同的Intent / PendingIntent额外的值,但我提供了不同的值

在写这个问题的时候解决了,但是贴出来以防万一: 我设置了多个像这样的警报,具有不同的id值: AlarmManager alarms = (AlarmManager)context.getSystemService( Context.ALARM_SERVICE); Intent i = new Intent(MyReceiver.ACTION_ALARM); // "com.example.ALARM" i.putExtra(MyReceiver.EXTRA_ID, id); // "com.example.ID", 2 PendingIntent p = PendingIntent.getBroadcast(context, 0, i, 0); alarms.setRepeating(AlarmManager.RTC_WAKEUP, nextMillis, 300000, p); // 5 mins …并像这样接收他们: public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(ACTION_ALARM)) { // It's time to sound/show an alarm final long id = […]

没有在extras中包含一个pendingIntent?

在Logcat上处理应用程序时遇到了这个错误消息。 谁能告诉我这是什么意思? 07-24 23:34:20.288 1140-1140/? E/NetworkScheduler.SchedulerReceiver﹕ Invalid parameter app 07-24 23:34:20.288 1140-1140/? E/NetworkScheduler.SchedulerReceiver﹕ Invalid package name : Perhaps you didn't include a PendingIntent in the extras 为了您的信息:我在这个应用程序中使用了一个AlarmManager

如何获取和取消PendingIntent?

我有一个alarmManager ,我用它在特定的时间向用户发送通知。 由于有多个警报,我有多个待处理的意图,我正在创build并给出一个唯一的ID,但是在某些情况下,我需要获取所有未决的意图,然后取消它们,所以我可以重置警报。 我已经尝试了他的,我似乎还没有得到正确的,所以我有几个问题: 这是你如何正确得到和取消PendingIntent ? Intent intent = new Intent(con, AppointmentNotificationReciever.class); PendingIntent sender = PendingIntent.getBroadcast(con, id, intent, PendingIntent.FLAG_CANCEL_CURRENT); AlarmManager am = (AlarmManager) con.getSystemService(Context.ALARM_SERVICE); am.cancel(sender); 意图是否需要完全匹配原始未决意图(额外和全部)? PendingIntent标志是否需要匹配原始未决意图的标志?

仅在当前未运行的情况下启动应用程序

我发送推送通知给用户,当点击它打开应用程序。 我的问题是,当应用程序已经打开,点击通知再次启动应用程序。 我只希望它启动的应用程序,如果它尚未运行。 我在通知中使用Pending Intent: PendingIntent contentIntent = PendingIntent.getActivity(this, 0, new Intent(this, Splash.class), 0); 我看到说使用的post: <activity android:name=".Splash" android:launchMode="singleTask" 但事情是,我正在运行的应用程序正在运行其他活动,然后从应用程序启动7秒后完成的飞溅,所以当应用程序正在运行Splash不是当前活动

Android通知PendingIntent附加null

我试图从通知发送信息调用的活动,而从我的活动,我得到空。 通知的代码是: private void showNotification() { Intent resultIntent = new Intent(this, MainActivity.class); if (D) Log.d(TAG, "Id: " + Id); resultIntent.putExtra("ineedid", deviceId); TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); stackBuilder.addParentStack(MeterActivity.class); stackBuilder.addNextIntent(resultIntent); PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); // Bundle tmp = resultIntent.getExtras(); // if (tmp == null) { // Log.d(TAG, "tmp bundle is null"); // } else { // long […]

等待通知不起作用

下面是我的代码块,当通知被点击时应该打开NotificationActivity 。 但它不工作。 private void setNotification(String notificationMessage) { Uri alarmSound = getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); mNotificationManager = getApplication().getSystemService(Context.NOTIFICATION_SERVICE); Intent notificationIntent = new Intent(getApplicationContext(), NotificationActivity2.class); PendingIntent contentIntent = PendingIntent.getActivity(this, 0,notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(getApplicationContext()) .setSmallIcon(R.drawable.logo) .setContentTitle("My Notification") .setStyle(new NotificationCompat.BigTextStyle() .bigText(notificationMessage)) .setContentText(notificationMessage).setAutoCancel(true); mBuilder.setSound(alarmSound); mBuilder.setContentIntent(contentIntent); mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build()); }

获取Android中的createChooser方法的IntentSender对象

我想使用新版本的使用IntentSender的Intent.createChooser方法。 文档只声明我可以从PendingIntent实例中获取它。 在我看来, PendingIntent似乎没有任何其他用途。 是否有另一种获得IntentSender方法,还是需要创buildPendingIntent ?

如何创build不同的pendingintent所以filterEquals()返回false?

我使用AlarmManager来设置重复的意图,但它已经造成了一些小麻烦,所以希望任何人都可以帮忙。 概要 有两个待定的意图。 一个运行在1000,另一个运行在2000,每天。 每个数据库都包含一个来自数据库的行ID,用于标识。 代码看起来像这样: Intent i = new Intent(mContext, ScheduleReceiver.class); i.putExtra(RuleDBAdapter.KEY_ROWID, (int)taskId); PendingIntent pi =PendingIntent.getBroadcast(…); mAlarmManager.set(AlarmManager.RTC_WAKEUP, when.getTimeInMillis(), pi); 删除: 问题是我们需要删除其中的一个。 删除挂起的意图的正确方法是设置一个相同的,然后从AlarmManager中调用取消。 Android文档: public void cancel(PendingIntent操作) 使用匹配的意图删除任何警报。 任何types的意图匹配此警报(由filterEquals(Intent)定义)的警报将被取消。 公共布尔filterEquals(意图其他) 确定两个意图是否相同意图解决(过滤)的目的。 也就是说,如果他们的行为,数据,types,类别和类别是相同的。 这并不比较意图中包含的任何额外数据 。 所以在上面的例子中,如果我做了一个相同的意图然后取消, 上述两个意图将被取消,因为它们来自相同的类/相同的行动等(除了“额外”的数据rowId,但filterEquals不在乎关于额外的数据)。 有没有解决方法?

意图恢复以前暂停的活动(从通知中调用)

我正在开发一个应用程序,向用户显示通知。 通知的目标是让用户在用户处于另一个活动时很容易返回到活动。 我在我的应用程序中使用此代码来创build并显示通知。 notification = new Notification(R.drawable.icon, "Notify", System.currentTimeMillis()); notification.setLatestEventInfo(this, "App name", "App message", PendingIntent.getActivity( this, 0, new Intent(this, Main.class), PendingIntent.FLAG_CANCEL_CURRENT)); notification.flags |= Notification.FLAG_ONGOING_EVENT; nManager.notify(0, notification); 但是,当用户点击通知时,会启动同一活动的新实例,而不是用户以前使用的实例。 我认为这与PendingIntent有关,但我无法find如何使Intent恢复先前暂停的活动实例,而不是创build新的实例。 谢谢。