专栏首页陶士涵的菜地[android] notification入门

[android] notification入门

通知栏,对话框,Toast是我们接触的三个提示框,通知栏是在系统的应用com.adnroid.systemui当中的

接触的几个Manger,getSystemService()方法得到的,参数:

ACTIVITY_SERVICE,LAYOUT_INFLATER_SERVIC,TELEPHONY_SERVICE,

获取NotificationManager对象,通过getSystemService()方法,参数:NOTIFICATION_SERVICE

调用NotificationManager对象的notify()方法,发送通知,参数:id是0,Notification对象

获取Builder对象,通过new Notification.Builder()

调用Builder对象的setContentTitle() setContentText() setSmallIcon() setLargeIcon()

setLargeIcon的参数:Bitmap对象,BitmapFactory.decodeResource(),参数:getResoure(),资源id

调用Builder对象的build()方法,得到Notification对象

此时会报一些错误,最低兼容版本是11,我们直接加一个注释屏蔽掉错误”NewApi”

在低版本的手机上,上面的代码会出错

获取Notification对象,通过new出来,参数:资源id,文本,时间

调用Notification对象的setLastEventInfo()方法,设置最新消息,参数:上下文,文本,PendingIntent对象

设置Notification对象的flags属性为Notification.FLAG_AUTO_CANCEL 自动关闭

PendingIntent对象,通过PendingIntent的getActivity()方法,获取到PendingIntent对象

6.0 版本移除了Notification.setLatestEventInfo()方法

流氓软件会使用这来弹广告,我们可以进系统应用设置,勾掉显示通知

package com.tsh.tshnotification;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    //显示通知栏
    @SuppressLint("NewApi")
    public void click(View v){
        NotificationManager nm=(NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        Notification.Builder builder=new Notification.Builder(this);
        Notification notification=builder.setContentTitle("提示")
                .setContentText("我是陶士涵")
                .setSmallIcon(R.drawable.ic_launcher)
                .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher))
                .build();
                
        nm.notify(0, notification);
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [android] 网络图片查看器

    界面布局LinerLayout线性布局,ImageView控件,EditText控件 hint属性提示信息,Button控件。

    陶士涵
  • [android] 练习使用ListView(二)

    陶士涵
  • [android] 练习使用ListView(三)

    陶士涵
  • Android Notification.Builder通知案例分享

    随着Android系统的不断升级,相关Notification的用法有很多种,有的方法可能已经被android抛弃了,下面为大家分享一下个人如何实现Androi...

    砸漏
  • 通过POST方式传递数据给服务器

    5.建立客户端程序(UserInformationPOST) 布局文件,MainActivity.java和上一篇(http://blog.csdn.net...

    提莫队长
  • C语言 | 每日基础(58)

    读者:我能否把 main() 定义为 void, 以避免扰人的 “main无返回值” 警告?

    C语言入门到精通
  • angular2 路由问题

    杭州前端工程师
  • Vue cli入门 原

    最近看到一个vue cli入门的例子,写的非常详细,对入门vue cli很有帮助,原文链接

    tianyawhl
  • mock测试及jacoco覆盖率

    单元测试是保证项目代码质量的有力武器,但是有些业务场景,依赖的第三方没有测试环境,这时候该怎么做Unit Test呢,总不能直接生产环境硬来吧?

    菩提树下的杨过
  • Vue Router实现路由嵌套单页面展示

    任我行RQ

扫码关注云+社区

领取腾讯云代金券