Android学习(二十)Notification通知栏

一、通知栏的内容

  1、图标

  2、标题

  3、内容

  4、时间

  5、点击后的相应

 

二、如何实现通知栏

  1、获取NotificationManager。

  2、显示通知栏:notify(id,notification);

  3、取消通知栏:cancle(id);

  4、构造Notification并设置显示内容;

  5、通知栏通知可以设置声音提示,指示灯,以及震动效果。

 

三、示例代码:发送通知和取消通知

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical"

    tools:context=".MainActivity">



    <TextView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="通知栏的使用" />



    <Button

        android:id="@+id/btn_send"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:text="发送通知"/>



    <Button

        android:id="@+id/btn_cancel"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:text="取消通知"/>

</LinearLayout>

 

添加权限:

    <!--指示灯的权限-->

    <uses-permission android:name="android.permission.FLASHLIGHT" />

    <!--震动的权限-->

    <uses-permission android:name="android.permission.VIBRATE" />

 

后台代码:

package com.example.zhengcheng.myapplication;



import android.app.Activity;

import android.app.NotificationManager;

import android.app.PendingIntent;

import android.content.Context;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.app.Notification;





public class MainActivity extends Activity {



    Button btn_send;    //发送按钮

    Button btn_cancel;  //取消按钮

    NotificationManager manager;  //通知控制类

    int notificationID;



    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);



        //通过系统服务来创建NotificationManager

        manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);



        btn_send = (Button) findViewById(R.id.btn_send);

        btn_send.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                sendNotication();

            }

        });





        btn_cancel = (Button) findViewById(R.id.btn_cancel);

        btn_cancel.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                manager.cancel(notificationID);

            }

        });





    }



    /**

     * 发送通知信息

     */

    private void sendNotication() {

        Intent intent = new Intent(this, MainActivity.class);

        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);



        Notification.Builder builder = new Notification.Builder(this);

        builder.setSmallIcon(R.mipmap.ic_launcher);   //设置图标

        builder.setTicker("手机状态栏提示");           //手机状态栏提示

        builder.setWhen(System.currentTimeMillis());  //设置时间

        builder.setContentTitle("通知栏标题");         //设置标题栏

        builder.setContentText("我来自NotificationDemo");          //设置通知栏内容

        builder.setContentIntent(pendingIntent);      //设置点击通知栏时弹出哪一个Activity





//        builder.setDefaults(Notification.DEFAULT_SOUND);    //设置提示声音

//        builder.setDefaults(Notification.DEFAULT_LIGHTS);    //设置指示灯

//        builder.setDefaults(Notification.DEFAULT_VIBRATE);  //设置震动



        builder.setDefaults(Notification.DEFAULT_ALL);   //设置上面所有的效果

        Notification notification = builder.build();     //Android4.1以上的版本,

//        Notification notification = builder.getNotification();  //如果4.1以下的版本使用 builder.getNotification();

        manager.notify(notificationID, notification);



    }



}

 

你可能感兴趣的:(notification)