Android NotificationCompat通知消息

import android.os.Bundle;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.support.v4.app.NotificationCompat;
import android.view.View;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void click(View v){
        NotificationCompat.Builder builder = 
                new NotificationCompat.Builder(this);
        //设置标题
        builder.setContentTitle("通知标题");
        
        builder.setContentText("这是内容。。。。。。。。。。。。。。");
        //图标
        builder.setSmallIcon(R.drawable.ic_launcher);
        //就是通知打开前在,页面可以看见的提示文字
        builder.setTicker("一闪,搜索");
        
        
        /**
         * 设置notification的样式
         */
        
        //大文本类型的通知
        NotificationCompat.BigTextStyle big = new NotificationCompat.BigTextStyle();
        big.setBigContentTitle("大的标题").bigText("大的内容");
        //设置builder的样式
        //builder.setStyle(big);
        
        //大图片的类型
        NotificationCompat.BigPictureStyle bigimg = new NotificationCompat.BigPictureStyle();
        
        Bitmap b = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
        
        bigimg.bigLargeIcon(b);
        //设置样式
        //builder.setStyle(bigimg);
        /**
         * 可以显示更多文字
         */
        NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle();
        inboxStyle.addLine("一行文本");
        inboxStyle.addLine("2行文本");
        inboxStyle.addLine("3行文本");
        inboxStyle.addLine("4行文本");
        inboxStyle.addLine("5行文本");
        builder.setStyle(inboxStyle);
        
        /**
         * 设置跳转,预跳转。可点可不点
         * 
         */
        Intent intent = new Intent(this,MainActivity.class);
        /**
         * 
         * pendingIntent:封装了Intent的预意图,表示
         * 动作还没有发生,但是会一直保留着这个动作
         * context 上下文
         * requestCode:请求码 
         * intent :跳转意图
         * Flag:标记
         */
        PendingIntent pendingIntent = 
                PendingIntent.getActivity(this, 200, intent, PendingIntent.FLAG_ONE_SHOT);
        
        //PendingIntent.FLAG_NO_CREATE;一般用一个
        builder.setContentIntent(pendingIntent);
        
        
        //服务来调用
        /**
         * get 是系统的服务
         * 传递Context.NOTIFICATION_SERVICE 可以获取一个管理Notification 的管理器 
         * 
         */
        NotificationManager manager = 
                (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        /**
         * builder构造器,可以建造哟个Notification对象
         * 
         */
        Notification build = builder.build();
        
        /**
         * 这个方法可以发出一个通知
         * id 唯一标识的id号
         * 
         * notification 是需要发出通知的对象,(谁需要这个通知)
         */
        manager.notify(1, build);
    }
}


转载于:https://my.oschina.net/zeroHigh/blog/516386

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值