亚洲免费人人妻人人,cao78在线视频,福建一级毛片,91精品视频免费观看,高清另类图片操逼,日本特黄特色大片免费看,超碰欧美人人澡曰曰澡夜夜泛

Android 再來(lái)一發(fā)Notification -電腦資料

電腦資料 時(shí)間:2019-01-01 我要投稿
【m.msguai.com - 電腦資料】

    步驟

    創(chuàng)建一個(gè)通知欄的Builder構(gòu)造類(lèi)

    定義通知欄的Action

    設(shè)置通知欄點(diǎn)擊事件

    通知

    代碼

    NotificationManager mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

    otificationCompat.Builder mBuilder = new NotificationCompat.Builder(this);

    mBuilder.setContentTitle("測(cè)試標(biāo)題")//設(shè)置通知欄標(biāo)題

    .setContentText("測(cè)試內(nèi)容") //設(shè)置通知欄顯示內(nèi)容

    .setContentIntent(getDefalutIntent(Notification.FLAG_AUTO_CANCEL)) //設(shè)置通知欄點(diǎn)擊意圖

    // .setNumber(number) //設(shè)置通知集合的數(shù)量

    .setTicker("測(cè)試通知來(lái)啦") //通知首次出現(xiàn)在通知欄,帶上升動(dòng)畫(huà)效果的

    .setWhen(System.currentTimeMillis())//通知產(chǎn)生的時(shí)間,會(huì)在通知信息里顯示,一般是系統(tǒng)獲取到的時(shí)間

    .setPriority(Notification.PRIORITY_DEFAULT) //設(shè)置該通知優(yōu)先級(jí)

    // .setAutoCancel(true)//設(shè)置這個(gè)標(biāo)志當(dāng)用戶(hù)單擊面板就可以讓通知將自動(dòng)取消

    .setOngoing(false)//ture,設(shè)置他為一個(gè)正在進(jìn)行的通知,

Android 再來(lái)一發(fā)Notification

。他們通常是用來(lái)表示一個(gè)后臺(tái)任務(wù),用戶(hù)積極參與(如播放音樂(lè))或以某種方式正在等待,因此占用設(shè)備(如一個(gè)文件下載,同步操作,主動(dòng)網(wǎng)絡(luò)連接)

    .setDefaults(Notification.DEFAULT_VIBRATE)//向通知添加聲音、閃燈和振動(dòng)效果的最簡(jiǎn)單、最一致的方式是使用當(dāng)前的用戶(hù)默認(rèn)設(shè)置,使用defaults屬性,可以組合

    //Notification.DEFAULT_ALL Notification.DEFAULT_SOUND 添加聲音 // requires VIBRATE permission

    .setSmallIcon(R.drawable.ic_launcher);

    對(duì)應(yīng)的各個(gè)方法的屬性

    Flags

    功能:提醒標(biāo)志符,向通知添加聲音、閃燈和振動(dòng)效果等設(shè)置達(dá)到通知提醒效果,可以組合多個(gè)屬性

    有2種設(shè)置方法:

    實(shí)例化通知欄之后通過(guò)給他添加.flags屬性賦值。

   

java Notification notification = mBuilder.build(); notification.flags = Notification.FLAG_AUTO_CANCEL;通過(guò)setContentIntent(PendingIntent intent)方法中的意圖設(shè)置對(duì)應(yīng)的flagspublic PendingIntent getDefalutIntent(int flags){      PendingIntent pendingIntent= PendingIntent.getActivity(this, 1, new Intent(), flags);      return pendingIntent;  }

    提醒標(biāo)志符成員

    Notification.FLAG_SHOW_LIGHTS       //三色燈提醒,在使用三色燈提醒時(shí)候必須加該標(biāo)志符

    Notification.FLAG_ONGOING_EVENT     //發(fā)起正在運(yùn)行事件(活動(dòng)中)

    Notification.FLAG_INSISTENT //讓聲音、振動(dòng)無(wú)限循環(huán),直到用戶(hù)響應(yīng) (取消或者打開(kāi))

    Notification.FLAG_ONLY_ALERT_ONCE //發(fā)起Notification后,鈴聲和震動(dòng)均只執(zhí)行一次

    Notification.FLAG_AUTO_CANCEL   //用戶(hù)單擊通知后自動(dòng)消失

    Notification.FLAG_NO_CLEAR     //只有全部清除時(shí),Notification才會(huì)清除 ,不清楚該通知(QQ的通知無(wú)法清除,就是用的這個(gè))

    Notification.FLAG_FOREGROUND_SERVICE  //表示正在運(yùn)行的服務(wù)

    setDefaults(int defaults)

    NotificationCompat.Builder中的方法,用于提示。

    功能:向通知添加聲音、閃燈和振動(dòng)效果的最簡(jiǎn)單、使用默認(rèn)(defaults)屬性,可以組合多個(gè)屬性(和方法1中提示效果一樣的)

    Notification.DEFAULT_VIBRATE  //添加默認(rèn)震動(dòng)提醒 需要 VIBRATE permission

    Notification.DEFAULT_SOUND  // 添加默認(rèn)聲音提醒

    Notification.DEFAULT_LIGHTS// 添加默認(rèn)三色燈提醒

    Notification.DEFAULT_ALL// 添加默認(rèn)以上3種全部提醒

    setVibrate(long[] pattern)

   

.setVibrate(new long[] {0,300,500,700}); //或者mBuilder.build().vibrate = new long[] {0,300,500,700};  setLights(intledARGB ,intledOnMS ,intledOffMS )

    功能:android支持三色燈提醒,這個(gè)方法就是設(shè)置不同場(chǎng)景下的不同顏色的燈。

    描述:其中l(wèi)edARGB 表示燈光顏色、 ledOnMS 亮持續(xù)時(shí)間、ledOffMS 暗的時(shí)間。

    注意:1)只有在設(shè)置了標(biāo)志符Flags為Notification.FLAG_SHOW_LIGHTS的時(shí)候,才支持三色燈提醒。2)這邊的顏色跟設(shè)備有關(guān),不是所有的顏色都可以,要看具體設(shè)備。

   

.setLights(0xff0000ff, 300, 0)    Notification notify = mBuilder.build();  notify.flags = Notification.FLAG_SHOW_LIGHTS;  notify.ledARGB = 0xff0000ff;  notify.ledOnMS = 300;  notify.ledOffMS = 300; setSound(Uri sound)//獲取默認(rèn)鈴聲  .setDefaults(Notification.DEFAULT_SOUND)  //獲取自定義鈴聲  .setSound(Uri.parse("file:///sdcard/xx/xx.mp3"))  //獲取Android多媒體庫(kù)內(nèi)的鈴聲  .setSound(Uri.withAppendedPath(Audio.Media.INTERNAL_CONTENT_URI, "5")) setOngoing(boolean ongoing)

    功能:設(shè)置為ture,表示它為一個(gè)正在進(jìn)行的通知,

電腦資料

Android 再來(lái)一發(fā)Notification》(http://m.msguai.com)。他們通常是用來(lái)表示一個(gè)后臺(tái)任務(wù),用戶(hù)積極參與(如播放音樂(lè))或以某種方式正在等待,因此占用設(shè)備(如一個(gè)文件下載,同步操作,主動(dòng)網(wǎng)絡(luò)連接)

    setProgress(int max, int progress,boolean indeterminate)

    屬性:max:進(jìn)度條最大數(shù)值 、progress:當(dāng)前進(jìn)度、indeterminate:表示進(jìn)度是否不確定,true為不確定,如下第3幅圖所示 ,false為確定下第1幅圖所示

    注意:此方法在4.0及以后版本才有用,如果為早期版本:需要自定義通知布局,其中包含ProgressBar視圖

    使用:如果為確定的進(jìn)度條:調(diào)用setProgress(max, progress, false)來(lái)設(shè)置通知,在更新進(jìn)度的時(shí)候在此發(fā)起通知更新progress,并且在下載完成后要移除進(jìn)度條,通過(guò)調(diào)用setProgress(0, 0, false)既可。

    如果為不確定(持續(xù)活動(dòng))的進(jìn)度條,這是在處理進(jìn)度無(wú)法準(zhǔn)確獲知時(shí)顯示活動(dòng)正在持續(xù),所以調(diào)用setProgress(0, 0, true) ,操作結(jié)束時(shí),調(diào)用setProgress(0, 0, false)并更新通知以移除指示條

    自定義View

    這里要用到RemoteViews這個(gè)類(lèi)。

    Notification的自定義布局是RemoteViews,和其他RemoteViews一樣,在自定義視圖布局文件中,僅支持FrameLayout、LinearLayout、RelativeLayout三種布局控件和AnalogClock、Chronometer、Button、ImageButton、ImageView、ProgressBar、TextView、ViewFlipper、ListView、GridView、StackView和AdapterViewFlipper這些顯示控件,不支持這些類(lèi)的子類(lèi)或Android提供的其他控件。否則會(huì)引起ClassNotFoundException異常。

   

public void showButtonNotify(){          NotificationCompat.Builder mBuilder = new Builder(this);          RemoteViews mRemoteViews = new RemoteViews(getPackageName(), R.layout.view_custom_button);          mRemoteViews.setImageViewResource(R.id.custom_song_icon, R.drawable.sing_icon);          //API3.0 以上的時(shí)候顯示按鈕,否則消失          mRemoteViews.setTextViewText(R.id.tv_custom_song_singer, "周杰倫");          mRemoteViews.setTextViewText(R.id.tv_custom_song_name, "七里香");          //如果版本號(hào)低于(3。0),那么不顯示按鈕          if(BaseTools.getSystemVersion() <= 9){              mRemoteViews.setViewVisibility(R.id.ll_custom_button, View.GONE);          }else{              mRemoteViews.setViewVisibility(R.id.ll_custom_button, View.VISIBLE);          }          //          if(isPlay){              mRemoteViews.setImageViewResource(R.id.btn_custom_play, R.drawable.btn_pause);          }else{              mRemoteViews.setImageViewResource(R.id.btn_custom_play, R.drawable.btn_play);          }          //點(diǎn)擊的事件處理          Intent buttonIntent = new Intent(ACTION_BUTTON);          /* 上一首按鈕 */          buttonIntent.putExtra(INTENT_BUTTONID_TAG, BUTTON_PREV_ID);          //這里加了廣播,所及INTENT的必須用getBroadcast方法          PendingIntent intent_prev = PendingIntent.getBroadcast(this, 1, buttonIntent, PendingIntent.FLAG_UPDATE_CURRENT);          mRemoteViews.setOnClickPendingIntent(R.id.btn_custom_prev, intent_prev);          /* 播放/暫停  按鈕 */          buttonIntent.putExtra(INTENT_BUTTONID_TAG, BUTTON_PALY_ID);          PendingIntent intent_paly = PendingIntent.getBroadcast(this, 2, buttonIntent, PendingIntent.FLAG_UPDATE_CURRENT);          mRemoteViews.setOnClickPendingIntent(R.id.btn_custom_play, intent_paly);          /* 下一首 按鈕  */          buttonIntent.putExtra(INTENT_BUTTONID_TAG, BUTTON_NEXT_ID);          PendingIntent intent_next = PendingIntent.getBroadcast(this, 3, buttonIntent, PendingIntent.FLAG_UPDATE_CURRENT);          mRemoteViews.setOnClickPendingIntent(R.id.btn_custom_next, intent_next);                    mBuilder.setContent(mRemoteViews)                  .setContentIntent(getDefalutIntent(Notification.FLAG_ONGOING_EVENT))                  .setWhen(System.currentTimeMillis())// 通知產(chǎn)生的時(shí)間,會(huì)在通知信息里顯示                  .setTicker("正在播放")                  .setPriority(Notification.PRIORITY_DEFAULT)// 設(shè)置該通知優(yōu)先級(jí)                  .setOngoing(true)                  .setSmallIcon(R.drawable.sing_icon);          Notification notify = mBuilder.build();          notify.flags = Notification.FLAG_ONGOING_EVENT;          mNotificationManager.notify(notifyId, notify);      }

最新文章