我正在使用NotificationManager构建器在我的应用程序中显示警报.我知道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,notificationIntent,0); nb.setContentIntent(contentIntent); Notification notification = nb.getNotification(); nm.notify(0,notification);
解决方法
我自己测试了一下,振动/铃声即使在更新时也会启动.
更新:只是更新,如果您使用NotificationCompat.Builder或Notification.Builder,您可以将setOnlyAlertOnce设置为仅响铃铃声/振动一次.