android通知栏(Notification)的使用

1、在消息通知的时候,我们通常用到Notification跟Toast,现在多半是用前面那种方法,最典型的应用是未看到的短信跟未接来电显示,还有QQ微信等等。
下面是简单的通知栏的效果:
这里写图片描述

这里写图片描述

下面是一个简单activity的文件

package com.example.android_notification;

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity  {
    private Context mContext;
    Bitmap LargeBitmap = null;
    private NotificationManager mNManager;
    private Notification.Builder mBuilder;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mContext = MainActivity.this;

        //创建大图标的Bitmap
        LargeBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.aa);
        mNManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

    }



    public void aa(View view){
        //跳转到下一个activity中
//        Intent intent = new Intent(mContext, LoadActivity.class);
//        PendingIntent pit = PendingIntent.getActivity(mContext, 0, intent, 0);
        //设置图片,通知标题,发送时间,提示方式等属性
        mBuilder = new Notification.Builder(this);
        // mBuilder.setSubText("——");                    //内容下面的一小段文字
        // mBuilder.setTicker("。。。。。~");            //收到信息后状态栏显示的文字信息
        mBuilder.setWhen(System.currentTimeMillis());           //设置通知时间
        mBuilder.setSmallIcon(R.drawable.aa);            //设置小图标
        mBuilder.setLargeIcon(LargeBitmap);                     //设置大图标
        mBuilder.setDefaults(Notification.DEFAULT_LIGHTS | Notification.DEFAULT_VIBRATE);    //设置默认的三色灯与振动器
        mBuilder.setDefaults(Notification.DEFAULT_SOUND);//获取默认铃声
        // mBuilder.setAutoCancel(true);                           //设置点击后取消Notification
      //跳到另外一个页面
       // mBuilder.setContentIntent(pit);
        Notification  notify1 = mBuilder.build();
        //通知标题
        mBuilder.setContentTitle("病毒侵入中...");
        //通知内容
        //mBuilder.setContentText("病毒侵入中...");
        mNManager.notify(0x110, notify1);
        //增加一个进度条
        mBuilder.setProgress(100,0,false);//初始为0
        //给一个子线程
        new Thread(){
            @Override
            public void run() {
                super.run();
                for (int i=1;i<=100;i++){
                    mBuilder.setProgress(100,i,false);
                    mNManager.notify(0x110, mBuilder.build());
                    mBuilder.setContentText("下载:"+i+"%");
                    try {
                        //模拟下载
                        Thread.sleep(100);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
                //下载完成后更改标题以及提示信息
                mBuilder.setContentTitle("开始安装");
                mBuilder.setContentText("安装中...");
                //设置进度,用于模拟安装
                mBuilder.setProgress(0,0,true);
                mBuilder.build().flags=Notification.FLAG_NO_CLEAR;
                mNManager.notify(0x110, mBuilder.build());
            }
        }.start();

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值