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);

    }

}

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。