Notification(通知)简单⽤法
Notification(通知)是应⽤程序提醒⽤户某件事情已经发⽣了的⼀种⽅式,可以在“状态栏”和“通知托盘”中看到它。如我们更新程序的时候,可以通过Notification来实现下载进度。
Notification 可以有以下动作来增强⽤户提醒:
1.在状态栏中显⽰图标。
2.灯光:⼿机LED呼吸灯闪烁
3.发出声⾳提醒。
4.⼿机震动。
5.在通知托盘中显⽰更多的信息
⼀,创建Notification
Notification需要使⽤NotificationManager来管理。NotificationManager是⽤来处理Notification的系统服务。可以使⽤getSystemService来获取。创建Notification有两种⽅式
第⼀种:使⽤Notification实例
//获取NotificationManager的引⽤
final NotificationManager nManager = (NotificationManager) getSystemService(this.NOTIFICATION_SERVICE);
//创建Notification
//第⼀个参数:在状态栏中显⽰的图标,
//第⼆个参数:在状态栏中显⽰的⽂本
//第三个参数:时间戳,通知显⽰的时间,NotificationManager会按照这个时间来排序Notification
final Notification notifi = new Notification(R.drawable.ic_launcher,"我的通知",System.currentTimeMillis());
Button btn2 = (Button) findViewById(R.id.Button01);
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
安卓intent用法//第⼀个参数:Notification的ID,如果ID相同那么会更新之前的Notification
//第⼆个参数:Notification的实例
}
});
第⼆种:使⽤NotificationBuilder(推荐这种⽅式)
//获取NotificationManager的引⽤
final NotificationManager nManager2 = (NotificationManager) getSystemService(this.NOTIFICATION_SERVICE);
//使⽤Notification Builder创建通知
Notification.Builder builder = new Notification.Builder(MainActivity.this);
//设置通知在状态栏中的图标
builder.setSmallIcon(R.drawable.ic_launcher);
//通知在状态栏中显⽰的⽂本
builder.setTicker("第⼀个");
final Notification nf = Notification();
//上⾯和下⾯这个⽅法所需的API版本不⼀样。功能是⼀样的
//final Notification nf2 = builder.build();
Button btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
}
});
⼆。Notification⾃定义View,点击⾃定义View中的按钮触发事件
可以使⽤RemoteViews来给Notification指定⾃定义View
NotificationManager nManager = (NotificationManager) getSystemService(this.NOTIFICATION_SERVICE);
Notification notifi = new Notification.Builder(this).build();
notifi.tickerText = "我的Notification";
notifi.when = System.currentTimeMillis();
notifi.icon = R.drawable.ic_launcher;
// 使⽤RemoteViews来给Notification指定⾃定义View
R.layout.nview);
// 点击⾃定义布局中的"打开相机“按钮打开相机
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
PendingIntent pi = Activity(this, 1, intent, 0);
//给⾃定义View指定PendingIntent
// 发送通知
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="schemas.android/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="打开⽹页"/>
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="打开照相机"/>
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="打开电话本"/>
</LinearLayout>
Notification 还有更多的属性。可以参考API 。随着android api 版本的不同。对应的⽅法也会有些许修改。关于Notification的⼿机震动和LED灯,⾳效等。需要在l 中添加震动,闪光等权限。有些⼿机ROM被优化过。可能效果不正确。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论