0

所以我有一个使用AlarmManager的计时器,一旦它达到0,我希望它发送一个具有各种属性的通知,取决于用户选择的内容(是否振动,播放声音与否,显示文本与否,在下拉托盘中显示...矩形thingy,无论它被称为,等等)。发送带选项的即时通知

我不确定这里使用的预期类是什么,因为它是直接的,即它是在闹钟管理器已经达到0之后,我现在在我的广播接收机的onReceive()方法中,所以我没有认为我现在需要使用PendingIntent。

我使用NotificationCompat.Builder?它会做我需要的一切吗?如果是这样,我使用支持v4或v7版本?

尝试这样的:

NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(c) 
    .setSmallIcon(R.mipmap.ic_launcher) 
    .setLargeIcon(BitmapFactory.decodeResource(c.getResources(), R.mipmap.ic_launcher)) 
    .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)) 
    .setContentText("This text should be in notification drawer!"); 

NotificationManager notificationManager = (NotificationManager) c.getSystemService(NOTIFICATION_SERVICE); 
notificationManager.notify(1, notificationBuilder.build()); 
Toast.makeText(c, "Toast text!", Toast.LENGTH_LONG).show(); 
+0

是NotificationCompat.Builder将完成你需要的所有上述功能 –

+0

@kapsym我应该使用哪个版本? v4或v7? – user8367195

+0

这取决于您的应用程序的其他功能。两者都支持Android 2.3以上版本,但v7还有其他组件,如操作栏和其他东西。 v7内部使用v4,所以我想你可以使用v7获得所有v4功能以及更多它提供的功能 –

回答

0

正如评论每讨论 -

NotificationCompat.Builder将尽一切你所需要的上面的东西。 .build足以立即发送通知。如果你想设置一个特定的时间,你也可以使用.setWhen。你可以在这里找到与你需要做的动作相关的所有方法 - Notification Developer Guide