notification常見的通知基本使用

一、在佈局文件里布局文件activity_main.xml佈局文件android

代碼安全

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

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

------------------------------------this

二、在MainActivity 類裏 實現通知的基本操做線程

代碼code

public class MainActivity extends Activity {xml

 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());

 }

效果圖示例

 

 

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

 


 //進度通知 -- 有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();
 }

效果圖示例


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

 

 
 //列表通知
 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());
 }

效果圖示例

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

 


 //海報等大圖通知
 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());//啓動通知
 }
}

效果圖示例

相關文章
相關標籤/搜索