notification常见的通知基本使用

1、在布局文件里布局文件activity_main.xml布局文件

代码

<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" >

      <Button
        android:id="@+id/btn_simpleText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="简单文本的通知"
        android:onClick="notifySimpleText"/>
   
    <Button
        android:id="@+id/btn_progress"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="进度通知"
        android:onClick="notifyProgress"/>
   
    <Button
        android:id="@+id/btn_list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="列表通知"
        android:onClick="notifyList"/>
   
     <Button
        android:id="@+id/btn_bigimage"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="大图标通知"
        android:onClick="notifyBigImage"/>

</LinearLayout>

------------------------------------

2、在MainActivity 类里 实现通知的基本操作

代码

public class MainActivity extends Activity {

 private NotificationManager notifmg;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  // 系统的 通知管理器
  notifmg = (NotificationManager) getSystemService(Service.NOTIFICATION_SERVICE);
 }

=========================

 // 简单文本的通知
 public void notifySimpleText(View view) {
  // 创建一个通知
  NotificationCompat.Builder builder = new NotificationCompat.Builder(
    this);

  // 设置通知的 一些属性
  builder.setSmallIcon(R.drawable.ic_launcher)// 设置通知小图标
    .setContentTitle("消息提示") // 设置标题
    .setContentText("注意:明天有强风,请注意安全")// 设置通知文本内容
    // 不断滚动该内容
    /*.setTicker(
      "注意:明天有强风,请注意安全!注意:明天有强风,请注意安全注意:明天有强风,请注意安全注意:明天有强风,请注意安全注意:明天有强风,请注意安全")*/
    // 设置通知的声音和 震动
    .setDefaults(
      Notification.DEFAULT_SOUND
        | Notification.DEFAULT_VIBRATE)
    // 第二个参数 -- 响应码
    // 第三个参数 -- Intent
    .setContentIntent(
      PendingIntent.getActivity(this, 100, new Intent(
        Intent.ACTION_CALL, Uri.parse("tel:10086")),
        PendingIntent.FLAG_ONE_SHOT));
  // 启动通知
  // 第一个参数 -- id
  // 第二个参数 -- 要启动的通知对象.build方法
  notifmg.notify(1, builder.build());

 }

效果图示例

204221_hKRi_2542711.png

 

 

======================

 


 //进度通知 -- 有2个通知 -- 1、下载进度通知

//                                    2、下完完成通知
 public void notifyProgress(View view){

//开辟一个线程
  new Thread(new Runnable() {
   
   @Override
   public void run() {
    //创建一个 通知
    NotificationCompat.Builder builder = new NotificationCompat.Builder(MainActivity.this);
    builder.setSmallIcon(R.drawable.ic_launcher)//设置通知小图标
           .setContentTitle("消息提示")
           .setContentText("正在下载...");
    for(int i = 0;i<100;i++){
     builder.setProgress(100, i, false);
     notifmg.notify(2,builder.build());//启动通知
     try {
      Thread.sleep(100);
     } catch (InterruptedException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     }
    }
    //下载完后 取消 该通知
    notifmg.cancel(2);
    //重新new一个通知
    builder = new NotificationCompat.Builder(MainActivity.this);
      //注意: 一定要有setSmallIcon 不然 该 通知 看不见
    builder.setSmallIcon(R.drawable.ic_launcher)
           .setContentTitle("消息提示")
           .setContentText("下载完成");
    notifmg.notify(3,builder.build());
   }
  }).start();
 }

效果图示例

204537_8R5d_2542711.png

204537_Ie37_2542711.png


======================================================

 

 
 //列表通知
 public void notifyList(View view){

//创建一个通知
  NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
  builder.setSmallIcon(R.drawable.ic_launcher)
         .setContentTitle("消息提示");
  
  //创建一个类型
  NotificationCompat.InboxStyle style = new NotificationCompat.InboxStyle();
  style.addLine("哈哈哈");
  style.addLine("aaaaaaaa");
  style.addLine("呜呜呜呜");
   //设置通知的类型
  builder.setStyle(style);
  notifmg.notify(4,builder.build());
 }

效果图示例

205136_WcKS_2542711.png

====================================================

 


 //海报等大图通知
 public void notifyBigImage(View view){
  NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
  builder.setSmallIcon(R.drawable.ic_launcher)
         .setContentTitle("消息提示");
  //创建一个类型
  NotificationCompat.BigPictureStyle bps = new NotificationCompat.BigPictureStyle();

//第二个参数放 提示的图片
  bps.bigLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher));

//第一个参数 -- 使用Bitmap工厂把图片资源转换成Bitmap类型

//第二个参数 -- 要推送的海报等大图
  bps.bigPicture(BitmapFactory.decodeResource(getResources(), R.drawable.xxx));
 
  builder.setStyle(bps);//设置成大图标的类型
  notifmg.notify(5,builder.build());//启动通知
 }
}

效果图示例

205617_Jx8x_2542711.png

转载于:https://my.oschina.net/u/2542711/blog/608464

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值