Android 通知栏 Notification 基本使用

在Android操作系统中,状态栏通知Notification的运用是很常见的,比如我们收到短信,QQ消息等,在手机顶端通知栏就会显示一条图文消息来提示我们。Notification有很多的用法,比如最基本的即时消息的提示,更新应用或下载文件的进度条式的提示,用来显示长文本和一些自定义布局的折叠式的提示,Android5.0新增加的悬挂式的提示等。下面我们介绍一个最基本的Notification,了解大致的流程和设置属性。

建立Notification大致需要以下四步:

1.从系统服务中获得通知管理器NotificationManager对象
2.建立Notification
3.定义一个PendingIntent,将PendingIntent关联到Notification
4.通过通知管理器来发起通知

public class Demo6 extends AppCompatActivity {
 
    private Context mContext;
    private Bitmap LargeBitmap = null;
    private NotificationManager myManager = null;
    private Notification myNotification;
    private static final int NOTIFICATION_ID_1 = 1;
    private Button on, off;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.demo6);
 
        on = (Button) findViewById(R.id.on);
        off = (Button) findViewById(R.id.off);
        mContext = Demo6.this;
        //创建大图标的Bitmap
        LargeBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
        //1.从系统服务中获得通知管理器
        myManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
 
        on.setOnClickListener(new View.OnClickListener() {
            @TargetApi(Build.VERSION_CODES.LOLLIPOP)
            @Override
            public void onClick(View v) {
 
                //3.定义一个PendingIntent,点击Notification后启动一个Activity
                PendingIntent pi = PendingIntent.getActivity(
                        mContext,
                        100,
                        new Intent(mContext, DemoMain.class),
                        PendingIntent.FLAG_CANCEL_CURRENT
                );
 
                //2.通过Notification.Builder来创建通知
                Notification.Builder myBuilder = new Notification.Builder(mContext);
                myBuilder.setContentTitle("QQ")
                        .setContentText("这是内容")
                        .setSubText("这是补充小行内容")
                        .setTicker("您收到新的消息")
                        //设置状态栏中的小图片,尺寸一般建议在24×24,这个图片同样也是在下拉状态栏中所显示
                        .setSmallIcon(R.mipmap.ic_launcher)
                        .setLargeIcon(LargeBitmap)
                        //设置默认声音和震动
                        .setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE)
                        .setAutoCancel(true)//点击后取消
                        .setWhen(System.currentTimeMillis())//设置通知时间
                        .setPriority(Notification.PRIORITY_HIGH)//高优先级
                        .setVisibility(Notification.VISIBILITY_PUBLIC)
                        //android5.0加入了一种新的模式Notification的显示等级,共有三种:
                        //VISIBILITY_PUBLIC  只有在没有锁屏时会显示通知
                        //VISIBILITY_PRIVATE 任何情况都会显示通知
                        //VISIBILITY_SECRET  在安全锁和没有锁屏的情况下显示通知
                        .setContentIntent(pi);  //3.关联PendingIntent
                myNotification = myBuilder.build();
                //4.通过通知管理器来发起通知,ID区分通知
                myManager.notify(NOTIFICATION_ID_1, myNotification);
            }
        });
 
        off.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //除了根据ID来取消通知,还可以调用cancelAll()关闭该应用产生的所有通知
                myManager.cancel(NOTIFICATION_ID_1);
            }
        });
 
 
    }
}

最基本的先介绍这些,以后会介绍其他自定义用法的通知!

 

 

 

 

 

 

你可能感兴趣的:(Android)