发送Notification的方法

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private int i = 0;
    /**
     *
     */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById(R.id.btn_send_notification).setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.btn_send_notification:
                //弹出一条notification
                sendNotification();
                break;
        }
    }
    //发送一条通知的方法
    private void sendNotification() {
        //第一步获得NotificationManager对象
        //通过调用getSystemService方法,这个方法可以获得系统的一些服务对象
        //参数是Context.NOTIFICATION_SERVICE
        NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

        //第二步 创建出一个Builder对象    类似于dialog的Builder对象   专门用来对Notification进行设定
        Notification.Builder builder = new Notification.Builder(this);
        //设置小图标
        builder.setSmallIcon(R.mipmap.ic_launcher);

        //设置标题
        builder.setContentTitle("来电话啦");
        //设置内容
        builder.setContentText("刘德华来电");
        //设置时间   调用系统的时间

        builder.setNumber(i++);//设置Notification的条数


        builder.setWhen(System.currentTimeMillis());

        //notification点击跳转 TODO 还没写完
        Intent intent = new Intent(this,MainActivity.class);
        //pendingIntent  代表延迟意图的意思,不知道什么时候会执行  放在Notification中是为了点击的时候实现意图
        //第一个参数,Context,第二个参数 返回码,第三个参数intent, 第四个参数代表pendingIntent执行一次后就失效
        //例如要启动一个Activity  就用getActivity的方法  主要用PendingIntent的get方法
        //因为pendingIntent的参数中context对象  所有才能在任何时间进行跳转
        PendingIntent pendingIntent = PendingIntent.getActivity(this,0,intent,PendingIntent.FLAG_ONE_SHOT);
        //设置PendingIntent给notification
        builder.setContentIntent(pendingIntent);


        //第三步  创建除Notification  通过Builder对象的build()方法创建除Notification
        //builder.build()方法是 API16之后使用的
        //builder.getNotification 使用的是API 11-16使用的
        Notification notification = builder.build();
        //通过设置flags属性,  让notification点击一次就消失
        notification.flags = Notification.FLAG_AUTO_CANCEL;



        //第四步  将notification显示出来
        //通过manage的notify方法  显示出设定好的notification
        //接收两个参数,第一个参数是ID  相同ID的会被系统认为是同一个Notification
        //第二个参数为创建好的Notification
//        int i = 0;
        manager.notify(0,notification);

    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值