Articles of notificationmanager

通知服务中的android内存泄漏

我有一个服务,它会创建一个通知,然后定期用某些信息更新它。 电话崩溃并重新启动大约12分钟后,我相信这是由于以下代码中的内存泄漏造成我如何更新通知,有人请检查/建议我是否是这种情况和我我做错了。 的onCreate: mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); createNotification: private void createNotification() { Intent contentIntent = new Intent(this,MainScreen.class); contentIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); PendingIntent appIntent =PendingIntent.getActivity(this,0, contentIntent, 0); contentView = new RemoteViews(getPackageName(), R.layout.notification); contentView.setImageViewResource(R.id.image, R.drawable.icon); contentView.setTextViewText(R.id.text, “”); notification = new Notification(); notification.when=System.currentTimeMillis(); notification.contentView = contentView; notification.contentIntent = appIntent; } updateNotification: private void updateNotification(String text){ contentView.setTextViewText(R.id.text, text); mNotificationManager.notify(0, notification); […]

Android NotificationManager给我“无效小图标”错误

我和通知管理器有一个奇怪的错误。 @Override public void onMessageReceived(String from, Bundle data) { Log.i(TAG, “IP : ” + (String) data.get(“ip”)); NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); Intent acceptNextIntent = new Intent(MainActivity.BROADCAST_KEY_ACCEPT); // acceptNextIntent.putExtra(“ip”, (String) data.get(“blah”)); //add stuff here PendingIntent acceptNextPendingIntent = PendingIntent.getBroadcast(this, 0, acceptNextIntent, 0); Intent declineNextIntent = new Intent(MainActivity.BROADCAST_KEY_DECLINE); PendingIntent declineNextPendingIntent = PendingIntent.getBroadcast(this, 0, declineNextIntent, 0); NotificationCompat.Action acceptAction = […]

如何设置点击监听器以进行通知?

通过AlarmManager启动服务时,我使用以下代码启动通知: nm = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE); CharSequence from = “App”; CharSequence message = “Getting Latest Info…”; PendingIntent contentIntent = PendingIntent.getActivity(this, 0, new Intent(), 0); Notification notif = new Notification(R.drawable.icon, “Getting Latest Info…”, System.currentTimeMillis()); notif.setLatestEventInfo(this, from, message, contentIntent); nm.notify(1, notif); 如何设置此项目的意图,以便当用户点击它时,它会启动某个活动?

如何在点击后正确清除所有通知?

我在通知栏上发送了一些通知,我希望在点击其中一个通知时清除所有通知。 现在我使用Flag逐个清除。 我知道notificationManager.cancelAll()可以清除所有通知但我应该放在哪里,这样我可以在点击一个通知后触发。 private static void generateNotification(Context context, String message) { int icon = R.drawable.ic_launcher; long when = System.currentTimeMillis(); NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); Notification notification = new Notification(icon, message, when); String title = context.getString(R.string.app_name); Intent notificationIntent = new Intent(context, MainActivity.class); // set intent so it does not start a new activity notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); […]

如何检测通知是否已被解除?

Android中是否有任何方法可以检测用户何时向左侧滑动通知并将其删除? 我正在使用闹钟管理器来设置重复警报,我需要在用户取消通知时停止重复警报。 这是我的代码: 设置重复提醒: AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), repeatFrequency, displayIntent); 我的通知代码: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //Get the notification ID. int notifID = getIntent().getExtras().getInt(“Reminder_Primary_Key”); //Get the name of the reminder. String reminderName = getIntent().getExtras().getString(“Reminder_Name”); //PendingIntent stores the Activity that should be launched when the user taps the notification. Intent i […]

如何使用声音和振动通知?

启动通知时,如何让设备振动或发出声音。 我听说过FLAGS。 但是我如何将它们用于声音和振动?

更新通知振动/铃声

我正在使用NotificationManager构build器在我的应用程序中显示一个警报。 我知道notify方法的第一个参数是一个id和框架将更新通知,如果它已经可见,但如果我设置警报播放铃声或振动,如果警报是铃声/振动也会触发更新? NotificationCompat.Builder nb = new NotificationCompat.Builder(this); nb.setContentTitle("title"); nb.setContentText("message"); nb.setSmallIcon(getResources().getIdentifier("drawable/alert", null, packageName)); nb.setWhen(System.currentTimeMillis()); nb.setAutoCancel(true); nb.setTicker("message"); final Uri ringtone = Uri.parse(PreferenceManager.getDefaultSharedPreferences(this).getString("ringtone", getString(R.string.settings_default_ringtone))); nb.setDefaults(Notification.DEFAULT_VIBRATE); nb.setSound(ringtone); nb.setDefaults(Notification.DEFAULT_LIGHTS); NotificationManager nm = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); final Intent notificationIntent = new Intent(this, Main.class); notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); final PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); nb.setContentIntent(contentIntent); Notification notification = nb.getNotification(); nm.notify(0, notification);

推送通知接收时添加新的通知(而不是replace旧通知)

我在我的应用程序上使用推送通知。 我曾经在推送通知到来时显示通知,如果我发送另一个通知(不清除以前的通知),它会replace新的通知。 这是我使用的代码 NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); int icon = R.drawable.ic_launcher; CharSequence tickerText = "New notification Pending"; long time = System.currentTimeMillis(); Notification notification = new Notification(icon, tickerText, time); notification.flags = Notification.DEFAULT_LIGHTS | Notification.FLAG_AUTO_CANCEL; // Context context = getApplicationContext(); CharSequence contentTitle = "Notifications"; CharSequence contentText = newMessage; Intent notificationIntent = new Intent(this, LoginActivity.class); PendingIntent contentIntent […]

什么是“AutomaticZenRule”? 它是干什么用的?

背景 我只注意到NotificationManager一些函数处理一个叫做AutomaticZenRule的类: https://developer.android.com/reference/android/app/NotificationManager.html#addAutomaticZenRule(android.app.AutomaticZenRule) 和别的… 问题 看着AutomaticZenRule的文档,它还是不太了解它是什么,它可以用来做什么: 规则禅宗模式的实例信息。 我试过了 在互联网上search,我只能在Commonsware的博客文章中看到,他们想知道它是什么: 目前还不清楚AutomaticZenRule是什么… 实际上我已经发现了更多。 不是“禅模式”,而不是“AutomaticZenRule”。 问题 什么是“禅模式”? 什么是“AutomaticZenRule”,我能用它做什么? 它与通知有什么关系? 在Android N上有什么特别的东西,这个API被添加到这个版本? 有没有使用它的样本?

Android:多个通知作为状态栏中的单个列表

我正试图根据一些标准Notify用户。 Multiple Notifications正在Status Bar显示,但我想Group the notification in single notification并且当用户单击Status Bar ,我想检索该组中的所有通知。 那可能吗? 或者我必须保留这些通知的PendingIntents ? 任何帮助将不胜感激。 例如,如果两个朋友的生日在同一天出现,那么应该显示两个通知。 我想结合这些通知,而不是状态栏中的2个通知,我想要一个,当用户点击它时,它应该有关于2个通知的信息。 可能吗? 请参阅下面的代码显示通知。 public void displayNotification(BirthdayDetail detail) { NotificationCompat.Builder builder = new NotificationCompat.Builder(this.context); builder.setSmallIcon(R.drawable.ic_launcher); builder.setContentTitle(detail.getContactName()); builder.setContentText(detail.getContactBirthDate()); Intent resultIntent = new Intent(this.context, NotificationView.class); resultIntent.putExtra("name", detail.getContactName()); resultIntent.putExtra("birthdate", detail.getContactBDate()); resultIntent.putExtra("picture_path", detail.getPicturePath()); resultIntent.putExtra("isContact", detail.isFromContact()); resultIntent.putExtra("notificationId", notificationId); if(detail.isFromContact()) { resultIntent.putExtra("phone_number", detail.getPhoneNumber()); } PendingIntent resultPendingIntent […]