精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

從零開始--系統(tǒng)深入學習android

移動開發(fā) Android
一個通知是一條消息他是顯示于你應(yīng)用程序之外的一個界面中。當你告訴系統(tǒng)要發(fā)布一個通知時,它首先作為一個icon出現(xiàn)在通知區(qū)域。為了看見通知的細節(jié),用戶可以點擊通知區(qū)域展開一個新的界面。

通知

一個通知是一條消息他是顯示于你應(yīng)用程序之外的一個界面中。當你告訴系統(tǒng)要發(fā)布一個通知時,它首先作為一個icon出現(xiàn)在通知區(qū)域。為了看見通知的細節(jié),用戶可以點擊通知區(qū)域展開一個新的界面。

注 意:除非特別注明外,本章指的都是NotificationCompat.Builder,它在v4 Support Library中有,正式添加于API Level 15。但有了v4 Support Library低版本系統(tǒng)也能用。另外Notification.Builder添加于android3.0。

7.1 通知顯示元素

通知有兩種可視化風格,它取決于版本和drawer的狀態(tài):

標準view

在drawer中標準的通知view

大型view

一個比較大的view。這個view是通知擴展的一個部分,這個功能被添加于android 4.1。

7.1.1正常view

一個標準view一般高位64dp。即使你創(chuàng)建一個大的view風格,直到它展開之前他仍然出現(xiàn)在標準view中。

以下是每個部分的說明:

1. 內(nèi)容標題

2. 大型icon

3. 內(nèi)容text

4. 內(nèi)容info

5. 小型icon

6. 發(fā)布通知的時間。你能使用setWhen()設(shè)置一個明確的值。

7.1.2大型view

當通知被展開時,大型view才會出現(xiàn)并顯示,一般由用戶使用展開手勢,通知drawer會被展開。展開的通知在android 4.1上才可用。如圖7-4所示:

注意大型View大部分的視覺元素與正常的視圖共享。僅僅不同的地方是編號為數(shù)字7的地方,這個細節(jié)區(qū)域。各大View風格設(shè)置有些不同。可用的風格有:

Big picture style

細節(jié)區(qū)域包含一個256dp高度的bitmap在它的細節(jié)部分。

Big text style

在細節(jié)部分顯示一個大型文本塊。

Inbox style

在細節(jié)部分顯示文本行數(shù)。

下面是大型view可用,但標準view不可用的風格:

Big content title

允許你覆蓋標準view的內(nèi)容標題,使之出現(xiàn)在展開view中

Summary text

允許你在細節(jié)區(qū)域添加文本行數(shù)。

7.2 創(chuàng)建一個通知

你 想在NotificationCompat.Builder對象中為通知指定UI信息和動作,就必須先使用 NotificationCompat.Builder.build()來創(chuàng)建通知,這個方法會返回一個Notification對象,為了發(fā)布通知,你 可以通過調(diào)用NotificationManager.notify()來傳遞Notification對象到系統(tǒng)中。

7.2.1必須的通知內(nèi)容

一個Notification對象必須包含以下內(nèi)容:

通過setSmallIcon()設(shè)置一個小的icon

通過setContentTitle()來設(shè)置一個標題

通過setContentText()來設(shè)置細節(jié)文本

7.2.2可選的通知的內(nèi)容和設(shè)置

所有其他通知設(shè)置和內(nèi)容都是可選的,具體可參考API NotificationCompat.Builder類

7.2.3通知動作(action)

雖 然它們是可選的,你應(yīng)該至少添加一個動作到你的通知中。一個動作允許用戶直接從通知到一個你應(yīng)用程序的Activity中。一個通知能提供多個動作。你應(yīng) 該總是定義一個動作,當用戶點擊通知時,觸發(fā)它。通常這個動作打開一個你應(yīng)用程序中的Activity。你也能添加按鈕到通知中(Android 4.1中加入的新功能),用來執(zhí)行額外的動作,如一個警告或即時響應(yīng)的文本消息。如果你使用附加的動作按鈕,你必須讓他們的功能在一個Activity中 可用。在通知里面,這個動作通過PendingIntent來定義,請使用NotificationCompat.Builder中合適的方法來創(chuàng)建。例 如,當用戶在Drawer中點擊通知文本的時候,你想要啟動Activity,你就可以通過調(diào)用setContentIntent()來添加一個 PendingIntent。用戶點擊通知啟動一個Activity是最常見的情況。請記住在Androird4.1或更高版本中,你才能從一個動作按鈕 中啟動一個Activity。

7.2.4 創(chuàng)建一個簡單的通知

以下代碼片段是一個簡單的例子,當一個用戶點擊通知時會打開一個activity。注意此段代碼創(chuàng)建一個TaskStackBuilder對象并使用它創(chuàng)建一個PendingIntent。

  1. otificationCompat.Builder mBuilder =        new NotificationCompat.Builder(this
  2.         .setSmallIcon(R.drawable.notification_icon) 
  3.         .setContentTitle("My notification"
  4.         .setContentText("Hello World!"); 
  5. Intent resultIntent = new Intent(this, ResultActivity.class); 
  6.   
  7. TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); 
  8. stackBuilder.addParentStack(ResultActivity.class); 
  9. stackBuilder.addNextIntent(resultIntent); 
  10. PendingIntent resultPendingIntent = 
  11.         stackBuilder.getPendingIntent(            0
  12.             PendingIntent.FLAG_UPDATE_CURRENT 
  13.         ); 
  14. mBuilder.setContentIntent(resultPendingIntent); 
  15. NotificationManager mNotificationManager = 
  16.     (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
  17. mNotificationManager.notify(mId, mBuilder.build()); 

7.2.5 應(yīng)用一個大型的view風格到通知中

當 一個通+知展開后出現(xiàn)一個大型的view,首先創(chuàng)建一個你想要的NotificationCompat.Builder對象。然后調(diào)用 Builder.setStyle()傳入大型view的風格對象。記住android4.1之前的版本是不可用的。當然后面我們會講解如何兼容低版本。

 

  1. NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this
  2.     .setSmallIcon(R.drawable.notification_icon) 
  3.     .setContentTitle("Event tracker"
  4.     .setContentText("Events received"
  5. NotificationCompat.InboxStyle inboxStyle =        new NotificationCompat.InboxStyle(); 
  6. String[] events = new String[6]; 
  7. inboxStyle.SetBigContentTitle("Event tracker details:"); 
  8. ...for (int i=0; i < events.length; i++) { 
  9.   
  10.     inboxStyle.addLine(events[i]); 
  11. mBuilder.setStyle(inBoxStyle); 
  12. ... 

7.2.6 處理兼容性

并 不是所有通知功能都用于特別的版本。例如動作按鈕,依賴于展開的通知,它只出現(xiàn)于android 4.1和高版本中。因為只有在這個版本上展開的通知才可用。為了確保***的兼容性,請使用NotificationCompat及其子類創(chuàng)建通知,***是 用NotificationCompat.Builder,此外當你實現(xiàn)一個通知,請遵循以下過程:

1. 不管用戶使用什么系統(tǒng)版本,都應(yīng)該提供通知所有的功能給所有用戶,為了做到這一點,需要在一個activity中驗證所有的功能可用。你可能想要添加一個 新的Activity。例如,如果您想要使用addAction()來控制停止和啟動媒體播放,首先需要在一個Activity中實現(xiàn)這個控制。

2. 當用戶點擊通知時,確保所有用戶點擊后都能啟動一個界面。我們需要為Activity創(chuàng)建一個PendingIntent。然后使用setContentIntent()把PendingIntent添加到通知中。

 

7.3 管理通知

當 你需要為同一類型的事件多次處理一個通知時,你應(yīng)該避免每次重新生成新的通知。你應(yīng)該考慮更新先前的通知,不是改變一些值就是添加一些值。例 如,Gmail通知用戶新的email已經(jīng)收到了,并且未讀消息會自增計數(shù),其實就是沒收到一個通知消息做了處理。這就是所謂的“堆疊”通知。

 

7.3.1 更新通知

通 知當然是可以被更新,使用通知ID來更新它,調(diào)用NotificationManager.notify(ID, notification)即可。如果先前的通知仍然可見,系統(tǒng)會從Notification 對象的content中更新它。如果先前的通知已經(jīng) dismiss掉了,一個新的通知將被創(chuàng)建。下面的代碼演示了一個通知更新并顯示事件數(shù)量,

  1. mNotificationManager = 
  2.         (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);//被更新的通知IDint notifyID = 1; 
  3. mNotifyBuilder = new NotificationCompat.Builder(this
  4.     .setContentTitle("New Message"
  5.     .setContentText("You've received new messages."
  6.     .setSmallIcon(R.drawable.ic_notify_status) 
  7. numMessages = 0
  8. ... 
  9.     mNotifyBuilder.setContentText(currentText) 
  10.         .setNumber(++numMessages);    // 因為ID保持不變,存在的通知被更新    mNotificationManager.notify( 
  11.             notifyID, 
  12.             mNotifyBuilder.build()); 
  13. ... 

7.3.2 移除通知

移除通知的方法如下:

1. 用戶通過個人或“Clear All” dismiss通知

2. 用戶點擊通知并且你在創(chuàng)建通知的時候調(diào)用了setAutoCancel()方法

3. 你根據(jù)指定的通知ID調(diào)用cancel()方法。這個方法也刪除正在進行中的通知

4. 你調(diào)用cancelAll(),它將刪除你先前所有的通知

 

7.4 當啟動一個Activity時保持導(dǎo)航

當 你從一個通知中啟動一個Activity的時候,你必須保存用戶的語氣導(dǎo)航體驗。點擊返回鍵將和點擊Home鍵的效果一樣。為了保存導(dǎo)航的用戶體驗,你應(yīng) 該在一個新的任務(wù)中啟動Activity。根據(jù)給定的新任務(wù)如何設(shè)置PendingIntent取決于你啟動的Activity的性質(zhì)。通常有兩種情況:

1. 常規(guī)activity

正 常啟動Activity的情況下,設(shè)置PendingIntent來啟動一個新的任務(wù),并給PendingIntent提供一個后臺堆棧,以復(fù)制應(yīng)用程序 正常點擊Back鍵的行為。從Gmail APP中來演示這個通知。當出現(xiàn)一條信息時你點擊通知,就會看到信息本身。當你點擊Back鍵時你會通過Gmail回退到Home屏幕,就像你已經(jīng)進入了 Gmail,從Gmail退到Home屏幕一樣。

2. 特別的activity

這 種Activity,是在某種意義上Activity擴展了通知提供的信息,因為很難顯示在通知本身。在這種情況下,設(shè)置PendingIntent啟動 一個新的任務(wù)。沒有必要創(chuàng)建一個后臺堆棧,因為這個Activity并不是屬于應(yīng)用程序正流程下的一部分。點擊Back鍵后依然會顯示Home屏幕。

7.4.1 通過PendingIntent設(shè)立一個規(guī)則的activity

1. 在manifest中定義你應(yīng)用程序的Activity層級。

◆支持Android 4.0.3和更早期的版本。在<activity>節(jié)點下添加子節(jié)點<meta-data>。表示父Activity與子Activity的關(guān)系。在<meta-data>節(jié)點下設(shè)置

android:name="android.support.PARENT_ACTIVITY"

android:value="<parent_activity_name>"

◆支持Android4.1和更高的版本。在<activity>節(jié)點中添加android:parentActivityName屬性

***支持的xml代碼

  1. <activity    android:name=".MainActivity" 
  2.  
  3.     android:label="@string/app_name" > 
  4.  
  5.     <intent-filter> 
  6.  
  7.         <action android:name="android.intent.action.MAIN" /> 
  8.  
  9.         <category android:name="android.intent.category.LAUNCHER" /> 
  10.  
  11.     </intent-filter></activity><activityandroid:name=".ResultActivity"<!—android 4.1和更高版本 -->android:parentActivityName=".MainActivity"><!—android 4.0.3和更早版本 --> 
  12.  
  13.     <meta-data  
  14.  
  15.         android:name="android.support.PARENT_ACTIVITY" 
  16.  
  17.         android:value=".MainActivity"/></activity> 

2. 創(chuàng)建一個后臺推棧基于Intent啟動的Activity:

◆創(chuàng)建Intent來啟動Activity

◆通過調(diào)用TaskStackBuilder.create()來創(chuàng)建一個任務(wù)棧

◆ 通過調(diào)用addParentStack()把后臺推棧添加到棧中。對于你在manifest中定義的每一個Activity層級,后臺堆棧都包含一個啟動 Activity的Intent對象。并且這個方法還添加了標記(flag)來啟動新任務(wù)中的堆棧。注意:盡管addParentStack()的參數(shù)是 一個啟動Activity的引用,但這個方法實際并沒有添加Intent進去。

◆通過調(diào)用addNextIntent()來添加Intent對象。它添加的對象就是最上面◆創(chuàng)建的那個intent對象。

◆如果你需要在堆棧上添加參數(shù)到Intent對象你可以調(diào)用TaskStackBuilder.editIntentAt()。這有時候是必要的, 當用戶使用back鍵導(dǎo)航回來,以確保目標Activity顯示有意義的數(shù)據(jù)。

◆調(diào)用getPendingIntent()獲得一個PendingIntent。然后你能調(diào)用setContentIntent()把這個PendingIntent作為參數(shù)。

下面的代碼片段演示了這個過程

  1. ... 
  2. Intent resultIntent = new Intent(this, ResultActivity.class); 
  3. TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);// 添加后臺堆棧stackBuilder.addParentStack(ResultActivity.class);// 添加Intent到棧頂stackBuilder.addNextIntent(resultIntent);// 獲得一個PendingIntent包含整個后臺堆棧 containing the entire back stackPendingIntent resultPendingIntent = 
  4.         stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); 
  5. ... 
  6. NotificationCompat.Builder builder = new NotificationCompat.Builder(this); 
  7. builder.setContentIntent(resultPendingIntent); 
  8. NotificationManager mNotificationManager = 
  9.     (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
  10. mNotificationManager.notify(id, builder.build()); 

7.4.2 通過PendingIntent設(shè)立一個專用的activity

以下部分描述了怎樣通過PendingIntent設(shè)置一個專用的activity。

一 個專用的Activity 不需要后臺棧,因此你不一定要在manifest中定義它的Activity層級,并且你不必調(diào)用addParentStack() 來構(gòu)建一個后臺棧。 反而使用manifest設(shè)置Activity的任務(wù)選項,并通過調(diào)用getActivity()創(chuàng)建PendingIntent: 

1. 在manifest中添加以下屬性到<activity>節(jié)點中。

◆android:name="activityclass"

完整的類名

◆android:taskAffinity=""

于代碼中設(shè)置的FLAG_ACTIVITY_NEW_TASK 標記相結(jié)合,它確保這個activity不能進入應(yīng)用程序的默認任務(wù)中。

◆android:excludeFromRecents="true"

從Recents排除了新的任務(wù),以便用戶不會意外導(dǎo)航回它。

  1. <activity    android:name=".ResultActivity"... 
  2.     android:launchMode="singleTask" 
  3.     android:taskAffinity="" 
  4.     android:excludeFromRecents="true"></activity>... 

2. 構(gòu)建和發(fā)布通知

◆創(chuàng)建一個Intent來啟動Activity

◆設(shè)置Activity啟動在一個新的、空的任務(wù)中,通過setFlags()方法來處理,傳入FLAG_ACTIVITY_NEW_TASK和FLAG_ACTIVITY_CLEAR_TASK

◆為Intent設(shè)置其他需要的選項

◆通過getActivity()從Intent中創(chuàng)建一個PendingIntent。你能使用這個PendingIntent對象,把他作為參數(shù)傳到setContentIntent()中

 

  1. NotificationCompat.Builder builder = new NotificationCompat.Builder(this); 
  2. Intent notifyIntent =        new Intent(new ComponentName(this, ResultActivity.class)); 
  3. notifyIntent.setFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TASK); 
  4. PendingIntent notifyIntent = 
  5.         PendingIntent.getActivity(        this,        0
  6.         notifyIntent 
  7.         PendingIntent.FLAG_UPDATE_CURRENT 
  8. ); 
  9.   
  10. builder.setContentIntent(notifyIntent); 
  11. NotificationManager mNotificationManager = 
  12.     (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
  13. mNotificationManager.notify(id, builder.build()); 

7.5 顯示通知的進度

通知可以包括一個動畫進度指示器顯示用戶正在運行的操作的狀態(tài)。如果你能估計這種操作需要花費多長時間,可以使用"determinate"形式的指示器(一個progress bar)。如果你不能估計花費的時間,使用“indeterminate”形式的指示器。

7.5.1 顯示一個固定的時間進度指示器

顯示一個確定的進度條, 通過調(diào)用setProgress()添加bar到你的通知中,setProgress(max, progress, false),然后發(fā)出通知。

  1. ... 
  2. mNotifyManager = 
  3.         (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
  4. mBuilder = new NotificationCompat.Builder(this); 
  5. mBuilder.setContentTitle("Picture Download"
  6.     .setContentText("Download in progress"
  7.     .setSmallIcon(R.drawable.ic_notification);new Thread(    new Runnable() { 
  8.         @Override        public void run() {            int incr;            
  9.             for (incr = 0; incr <= 100; incr+=5) { 
  10.                     
  11.                     mBuilder.setProgress(100, incr, false); 
  12.                      
  13.                     mNotifyManager.notify(0, mBuilder.build());                         
  14.                         try { 
  15.                             Thread.sleep(5*1000); 
  16.                         } catch (InterruptedException e) { 
  17.                             Log.d(TAG, "sleep failure"); 
  18.                         } 
  19.             } 
  20.              
  21.             mBuilder.setContentText("Download complete"
  22.              
  23.                     .setProgress(0,0,false); 
  24.             mNotifyManager.notify(ID, mBuilder.build()); 
  25.         } 
  26.     } 
  27. ).start(); 

7.5.2顯示一個持續(xù)的Activity指示器

為 了顯示不確定的activity指示器,使用setProgress(0, 0, true)添加它到你的通知中,前面兩個參數(shù)可以忽略,然后發(fā)出通知。它的結(jié)果是一個指示器,具有和進度條相同的樣式,不同的地方就是它的動畫是持續(xù)的。 在操作開始的地方就發(fā)出通知,這個動畫將一直執(zhí)行,直到你修改通知為止。將操作完成時,你應(yīng)該手動調(diào)用setProgress(0, 0, false)然后更新通知移除activity指示器。如果你不這么做就算操作完成動畫也會繼續(xù)運行。

  1. mBuilder.setProgress(100, incr, false); 
  2. mNotifyManager.notify(0, mBuilder.build()); 

7.6 自定義通知布局

通 知框架允許你自定義通知布局,它在一個RemoteViews 對象中定義了通知的外觀。自定義布局通知和正常的通知類似,它們都是基于一個 RemoteViews定義在一個XML布局文件。自定義通知的可用高度取決于通知view的布局。正常view布局限制為64dp,展開view布局限 制為256dp。自定義通知布局,通過實例化一個RemoteViews對象然后inflates一個xml布局文件啟動。不再調(diào)用 setContentTitle()方法,而使用setContent()方法來設(shè)置自定義通知的內(nèi)容細節(jié)。使用這個方法在RemoteViews中來設(shè) 置view子類的值:

1. 為通知創(chuàng)建一個單獨的xml布局文件。

2. 在你的應(yīng)用程序中,使用RemoteViews方法來定義你通知的icon和文本。調(diào)用setContent()方法put這個RemoteViews對 象到你的NotificationCompat.Builder中。避免正在RemoteViews對象中設(shè)置Drawable背景,因為你的文本顏色可 能會變的看不清。

RemoteViews類也包括早期Chronometer或ProgressBar中的方法 ,更多詳細信息請參考API文檔。

當你使用自定義通知布局時,請?zhí)貏e注意不同的設(shè)備分辨率和水平方向上的問題。不要讓你的自定義布局太復(fù)雜,一定要在各種配置中測試。

本文鏈接:http://my.oschina.net/u/947024/blog/293699

責任編輯:chenqingxiang 來源: oschina
相關(guān)推薦

2011-04-06 15:55:50

開發(fā)webOS程序webOS

2015-10-15 14:16:24

2024-11-28 10:35:47

2023-03-21 07:35:43

2011-09-05 14:17:54

Sencha ToucMVC

2011-05-24 13:37:16

jQueryAjax

2018-08-20 08:15:50

編程語言Go語言切片

2015-09-18 10:09:05

Swift

2015-11-17 16:11:07

Code Review

2019-01-18 12:39:45

云計算PaaS公有云

2018-04-18 07:01:59

Docker容器虛擬機

2024-12-06 17:02:26

2020-07-02 15:32:23

Kubernetes容器架構(gòu)

2015-05-06 09:36:05

Java語言從零開始學習

2018-05-09 20:08:09

人工智能深度學習Python

2018-04-16 16:31:56

前端開發(fā)從零開始

2024-12-09 09:44:34

機器學習模型分類器

2018-09-14 17:16:22

云計算軟件計算機網(wǎng)絡(luò)

2010-05-26 17:35:08

配置Xcode SVN

2024-05-15 14:29:45

點贊
收藏

51CTO技術(shù)棧公眾號

成人网在线免费看| 精品国产一区二区国模嫣然| 性刺激综合网| 国产日韩在线观看一区| 午夜精品av| 日韩成人激情在线| 亚洲精品www.| 欧美14一18处毛片| 国产亚洲欧美激情| 91亚洲精品在线| 国产成人免费看| 亚洲澳门在线| 亚洲欧美激情在线视频| 激情成人在线观看| 理论不卡电影大全神| 国产精品乱码一区二区三区软件| 国产传媒一区| 中文在线资源天堂| 99在线精品免费视频九九视| 在线丨暗呦小u女国产精品| 久久黄色一级视频| 精品网站在线| 欧美日韩国产在线播放| 欧美日韩视频免费在线观看| 免费一级毛片在线观看| 国产91高潮流白浆在线麻豆 | 都市激情久久久久久久久久久| 天天干在线播放| 一区二区在线影院| 国产一区二区三区在线观看视频 | 99久久夜色精品国产网站| 国产精品夜间视频香蕉| 日本三级一区二区| 欧美啪啪一区| 久久色免费在线视频| 亚洲av毛片基地| 香蕉一区二区| 亚洲成人激情图| 色综合久久久无码中文字幕波多| 欧美男女视频| 欧美日韩一二区| 黑人粗进入欧美aaaaa| 少妇视频在线观看| 精品日韩视频在线观看| 黄页免费在线观看视频| 天堂8中文在线| 亚洲精品久久久蜜桃| 在线无限看免费粉色视频| chinese偷拍一区二区三区| 91久色porny| 久热这里只精品99re8久| 开心激情综合网| 成人美女视频在线观看18| 99re6在线| www日本在线| 国产不卡视频在线播放| 97影院在线午夜| www.日韩高清| 成人毛片在线观看| 久久精品aaaaaa毛片| 欧美成人国产精品一区二区| 极品粉嫩美女露脸啪啪| 狠狠色伊人亚洲综合网站l| 99精品视频在线免费观看| 99一区二区| 四季av日韩精品一区| 99久久精品费精品国产一区二区| 国产一区二区三区av在线 | 精品久久久久av影院 | 中文字幕自拍偷拍| 老司机免费视频一区二区三区| 国产精品一区二区3区| 91久久国语露脸精品国产高跟| 黄色小说综合网站| 亚洲综合中文字幕68页| 欧美一级一区二区三区| 99久久精品免费看| 欧美美乳视频网站在线观看| 国产精品免费观看| 最新久久zyz资源站| 日本免费成人网| 欧美在线极品| 欧洲色大大久久| 中文字幕国产高清| 国产福利一区二区精品秒拍| 精品亚洲国产成av人片传媒| www亚洲色图| 伊人久久大香线| 91精品国产电影| 真实新婚偷拍xxxxx| 国产一区91精品张津瑜| 国产一级精品aaaaa看| 福利片在线看| 亚洲中国最大av网站| 日韩欧美亚洲天堂| 深夜日韩欧美| 日韩欧美国产麻豆| 制服 丝袜 综合 日韩 欧美| 小说区亚洲自拍另类图片专区| 欧美精品videos另类日本| 人妻 日韩精品 中文字幕| 久久66热偷产精品| 精品日韩电影| 黄色网址在线免费| 欧美日韩精品在线| 国产在线观看中文字幕| 亚洲精品无吗| 欧美激情视频网址| 亚洲无码精品在线观看| 成人激情免费网站| 在线观看福利一区| 中老年在线免费视频| 91 com成人网| 欧美 日韩 国产 成人 在线观看| 欧美视频一区| 91精品国产综合久久香蕉的用户体验 | 超碰97在线播放| 日本视频在线免费观看| 欧美日韩亚洲一区二| 男人的天堂免费| 婷婷激情综合| 国产精品入口尤物| 四虎精品在线| 亚洲在线观看免费视频| 天天操狠狠操夜夜操| 国产精品一区2区3区| 久久久人成影片一区二区三区| 91精品国产乱码久久久| 久久久久久久国产精品影院| 男人天堂1024| 国产成人一二片| 久久久久久久久久国产| 国产免费的av| 日韩毛片在线免费观看| 精品久久久99| 久久综合电影| 国产欧美最新羞羞视频在线观看| 黄色av免费在线观看| 色乱码一区二区三区88| 粉嫩av蜜桃av蜜臀av| 亚洲免费播放| 国产精品久久久久久久天堂第1集| 黄色的网站在线观看| 欧美精品在欧美一区二区少妇| 神马久久久久久久久久久| 爽好多水快深点欧美视频| 欧美大香线蕉线伊人久久| 国产理论在线| 亚洲女人被黑人巨大进入al| 亚洲黄色免费观看| 久久婷婷国产综合国色天香| www.中文字幕在线| 丝袜美腿综合| 国产成人精品av在线| 国产一级二级三级在线观看| 欧洲亚洲精品在线| 国精产品视频一二二区| 久久99精品久久久久| 日本一级淫片演员| 日韩精品一区二区三区中文 | 日本一二三区不卡| 91婷婷韩国欧美一区二区| 国产精品毛片va一区二区三区| 精品精品国产国产自在线| 欧洲美女亚洲激情| 久久成人综合| 成人做爽爽免费视频| 欧美色图亚洲激情| 国产国语老龄妇女a片| 久久人妻少妇嫩草av蜜桃| 手机看片福利视频| 天天躁日日躁狠狠躁免费麻豆| 69久久久久久| 国产美女久久| 久久资源免费视频| 亚洲中文无码av在线| 97久久综合区小说区图片区| 欧美成人免费在线观看| 亚洲国产精品一| 精品久久久久久久久中文字幕| 亚洲中文字幕无码av| 日韩精品福利网| 一区二区三区免费看| 精品国产一区二区三区性色av| 欧美极品少妇全裸体| 精品999视频| 4438亚洲最大| 久久久久久久久久免费视频| 中文字幕久久午夜不卡| 亚洲熟女乱综合一区二区| 国产九九精品| 欧美精品在线观看一区二区| 无码人妻aⅴ一区二区三区日本| av日韩精品| 欧美最猛性xxxx| 国产区在线观看| 日韩国产高清视频在线| 国产一区二区小视频| 天天影视网天天综合色在线播放| 亚洲久久久久久久| 国产成人三级在线观看| av免费网站观看| 蜜桃传媒一区二区亚洲| 黄大色黄女片18免费| 久久精品超碰| 精品综合久久久久久97| 九色在线播放| 日韩欧美国产午夜精品| 中文字幕欧美人妻精品| 亚洲成国产人片在线观看| 欧美88888| 久久久噜噜噜久噜久久综合| 国产成人精品综合久久久久99| 欧美午夜不卡| 中国成人在线视频| 网曝91综合精品门事件在线| 91精品国产一区二区三区动漫| 午夜av成人| 97视频色精品| 青草影视电视剧免费播放在线观看| 中文字幕亚洲无线码a| 欧美熟妇另类久久久久久不卡| 在线不卡的av| 国产精品专区一| 国产在线观看黄| 亚洲国产女人aaa毛片在线| 一区二区精品视频在线观看| 日本精品视频一区二区| 九九热在线免费观看| 洋洋av久久久久久久一区| 日韩高清dvd碟片| 欧美激情一区二区三区蜜桃视频| 中文字幕在线播放视频| 国产成人福利片| 日本成人在线免费观看| 黄一区二区三区| 中文字幕国内自拍| 日韩电影在线免费| aaa毛片在线观看| 一区二区三区导航| 亚洲熟妇无码另类久久久| 国产综合亚洲精品一区二| 在线观看污视频| 图片区亚洲欧美小说区| 亚洲欧美久久234| 欧美日中文字幕| 色噜噜狠狠色综合网| 精品国产91久久久久久浪潮蜜月| 国产亚洲精品久久飘花| 人人精品视频| 欧美日本韩国国产| 亚洲精品小区久久久久久| 久久一区免费| 国产亚洲欧美日韩在线观看一区二区 | 国产精品99久久久久久有的能看| 中文字幕日韩综合| 国内欧美视频一区二区| 午夜久久久影院| 欧亚精品中文字幕| 另类视频在线| 午夜精品久久久久久久男人的天堂| 欧美性video| 国模精品一区二区三区色天香| 人妖欧美1区| 性欧美xxxx视频在线观看| 男人的天堂免费在线视频| 欧美在线一级va免费观看| 写真福利精品福利在线观看| 国产精品网红直播| 日本在线一区二区三区| 国产99视频精品免费视频36| 日韩三区视频| 亚洲电影免费| 欧美日本中文| 国产精品亚洲αv天堂无码| 视频一区二区三区入口| 一个色综合久久| 国产成人精品免费网站| 一区二区三区少妇| 国产精品乱码久久久久久| 欧美成人三级视频| 久久精品青草| 国产一级精品aaaaa看| 欧美美女在线| 日本丰满少妇黄大片在线观看| 精品二区久久| 四季av一区二区| 国产成人欧美日韩在线电影| 亚洲制服丝袜在线播放| 中文字幕av资源一区| 久草视频在线资源站| 在线中文字幕一区二区| av中文字幕观看| 亚洲深夜福利视频| av网站导航在线观看免费| 欧美综合在线第二页| 在线观看欧美| 青青影院一区二区三区四区| 你懂的国产精品永久在线| 国产一级不卡毛片| 国产91富婆露脸刺激对白| 欧美aaa级片| 精品久久久香蕉免费精品视频| 一级片aaaa| 国产丝袜一区二区三区| 中文字幕在线观看网站| 国产xxx69麻豆国语对白| 99热这里只有精品首页| 视频在线99| 国产精品美女久久久| 久久无码人妻一区二区三区| 国产亚洲一区二区三区在线观看| 国产精品美女诱惑| 牛牛在线精品视频| 国产精品影院在线观看| 要久久电视剧全集免费| 青青草视频在线视频| 麻豆极品一区二区三区| 中文字幕高清视频| 亚洲图片欧美色图| 国产欧美一级片| 自拍亚洲一区欧美另类| 日韩精品一区二区三区| 国产一区二区无遮挡| 国内自拍视频一区二区三区| 亚洲美女性囗交| 国产精品久久一卡二卡| 无码人妻av一区二区三区波多野| 日韩电影第一页| 国产乱码精品一区二区| 国产电影一区二区在线观看| 欧美日韩一区二区三| 欧美日韩亚洲一区三区| 亚洲精品永久视频| 欧美激情综合五月色丁香| 婷婷激情五月综合| 日韩电视剧在线观看免费网站| 国产精品蜜臀| 高清不卡日本v二区在线| 中文字幕一区二区三三| 五月天丁香花婷婷| 中文字幕佐山爱一区二区免费| 一区二区三区播放| 中文字幕欧美日韩在线| 色天使综合视频| 日本一区免费在线观看| 久久激情视频| 欧美做受高潮6| 在线日韩av片| 在线a免费看| 成人午夜高潮视频| 亚洲成av人片乱码色午夜| 久久精品国产99久久99久久久| 亚洲色图在线看| 精品国产18久久久久久| 欧美日韩第一视频| 嗯用力啊快一点好舒服小柔久久| 男人的天堂avav| 波多野结衣中文字幕一区| 免费看日韩毛片| 亚洲欧美国产一本综合首页| 在线成人视屏| 26uuu成人| www.日韩av| 日本欧美www| 久热在线中文字幕色999舞| 久久天堂久久| 看av免费毛片手机播放| 久久精品视频在线看| 中文字幕你懂的| 九九热精品视频| 亚洲制服欧美另类| 一区二区三区免费播放| 亚洲精品免费在线播放| 免费看毛片的网址| 97精品视频| 丰满少妇xbxb毛片日本| 欧美日韩亚洲成人| 国产毛片在线| 51精品国产人成在线观看| 亚洲理伦在线| 五月天婷婷丁香网| 精品免费视频.| 成人线上视频| 波多野结衣三级在线| 成人午夜视频在线观看| 懂色av中文字幕| 欧美激情精品久久久久| 国产毛片一区二区三区| 91性高潮久久久久久久| 好吊成人免视频| 高潮毛片在线观看| 久久青青草综合| 国产在线播放一区二区三区| 成人免费看片98欧美| 色播久久人人爽人人爽人人片视av| 99香蕉久久| 向日葵污视频在线观看| 姬川优奈aav一区二区| 日本三级视频在线观看|