Notification支持的Intent类型(都是PendingIntent类的实例)
contentIntent:在通知窗口区域,Notification被单击时的响应事件由该intent触发;
deleteIntent:在通知窗口区域,当用户点击全部清除按钮时,响应该清除事件的Intent;
fullScreenIntent:响应紧急状态的全屏事件(例如来电事件),也就是说通知来的时候,跳过在通知区域点击通知这一步,直接执行fullScreenIntent代表的事件。
上面三种PendingIntent可以拉起Activity、Service和BroadcastReceiver,如:PeddingIntent.getActivity(),PeddingIntent.getService(),PeddingIntent.getBroadcast()
不同的手机,不同的Android平台版本,状态栏通知窗口的背景颜色可能千差万别,例如Android2.3之前的版本通知窗口默认背景是白色的,Android4.0之后的版本通知窗口背景默认是黑色的,这就需要在设置Notification的字体时加以区别,否则,很容易导致通知的字体颜色和背景色一样,从而看不到字体部分,市面上很多app就存在这个问题。
大于等于Android2.3(API level 9)
android:TextAppearance.StatusBar.EventContent
android:TextAppearance.StatusBar.EventContent.Title
小于Android2.3(API level 9)
?android:attr/textColorPrimary
bold
使用方法:
1.定义两个Style文件
values/style.xml
<style name="NotificationTitle">
<item name="android:textColor">?android:attr/textColorPrimary</item>
<item name="android:textStyle">bold</item>
</style>
<style name="NotificationText">
<item name="android:textColor">?android:attr/textColorPrimary</item>
</style>
values-v9/style.xml
<style name="NotificationTitle" parent="android:TextAppearance.StatusBar.EventContent.Title" />
<style name="NotificationText" parent="android:TextAppearance.StatusBar.EventContent" />
2.分别设置自定义Notification的标题和内容描述两个TextView的Style为NotificationTitle和NotificationText
大功告成,这样就和系统本身默认的颜色和谐了