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

全面解析Activity啟動模式

移動開發 Android
在Android應用中, Activity是最核心的組件, 如何生成一個Activity實例, 可以選擇不同的啟動模式, 即LaunchMode. 啟動模式主要包括: standard, singleTop, singleTask, singleInstance.

在Android應用中, Activity是最核心的組件, 如何生成一個Activity實例, 可以選擇不同的啟動模式, 即LaunchMode. 啟動模式主要包括: standard, singleTop, singleTask, singleInstance.

標準模式在每次啟動時, 都會創建實例; 三種單例模式, 會根據情況選擇創建還是復用實例. 在Activity啟動中, 創建實例的生命周期: onCreate -> onStart -> onResume; 重用實例的生命周期: onNewIntent -> onResume.

在AndroidManifest的Activity中, 使用launchMode屬性, 可以設置啟動模式, 默認是standard模式; 使用taskAffinity屬性, 并添加包名, 可以設置Activity棧, 默認是當前包名, 只能應用于single模式.

希望通過本文, 可以更好的理解Activity的啟動模式(LaunchMode).

 

[[164441]]

 

觀察Activity棧的腳本.

  1. adb shell dumpsys activity | sed -n -e '/Stack #/p' -e '/Running activities/,/Run #0/p' 

Standard

標準模式, 啟動Activity的默認模式, 被啟動的Activity 會運行于 啟動的Activity 棧, 因此必須使用Activity的Context啟動, 不能使用Application, 否則會報錯.

如MainActivity啟動TestAActivity.

  1. Stack #1:  
  2.   Running activities (most recent first):  
  3.     TaskRecord{3caa65e3 #2711 A=me.chunyu.spike.wcl_activity_launchmode_demo U=0 sz=2}  
  4.       Run #1: ActivityRecord{36b06e99 u0 me.chunyu.spike.wcl_activity_launchmode_demo/.TestAActivity t2711}  
  5.       Run #0: ActivityRecord{27396226 u0 me.chunyu.spike.wcl_activity_launchmode_demo/.MainActivity t2711}  
  6. Stack #0:  
  7.   Running activities (most recent first):  
  8.     TaskRecord{27d796c9 #2695 A=com.miui.home U=0 sz=1}  
  9.       Run #0: ActivityRecord{2e5712cb u0 com.miui.home/.launcher.Launcher t2695} 

 

棧內由下到上: MainActivity -> TestAActivity.
SingleTop

棧頂復用模式. 只有Activity位于棧頂, 重復啟動時, 會使用默認實例, 即單例模式; 如果位于棧內, 則仍然會創建實例.

MainActivity啟動TestA, TestA啟動TestB, TestB啟動自身, TestB是單例. 觀察棧內情況, TestB只有一份實例, 第二次創建復用.

  1. Stack #1:  
  2.   Running activities (most recent first):  
  3.     TaskRecord{12abf566 #2712 A=me.chunyu.spike.wcl_activity_launchmode_demo U=0 sz=3}  
  4.       Run #2: ActivityRecord{187d7ff7 u0 me.chunyu.spike.wcl_activity_launchmode_demo/.TestBActivity t2712}  
  5.       Run #1: ActivityRecord{a551034 u0 me.chunyu.spike.wcl_activity_launchmode_demo/.TestAActivity t2712}  
  6.       Run #0: ActivityRecord{22f9cce4 u0 me.chunyu.spike.wcl_activity_launchmode_demo/.MainActivity t2712} 

 

棧內: MainActivity -> TestAActivity -> TestBActivity

MainActivity啟動TestA, TestA啟動TestB, TestB啟動TestC, TestC啟動TestB, TestB是單例. 觀察棧內情況, 由于TestC是棧頂, TestC啟動TestB, TestB不是棧頂, 重新創建TestB實例, 則保留兩份TestB.

  1.  
  2.  
  3. Stack #1:  
  4.   Running activities (most recent first):  
  5.     TaskRecord{1792f5f0 #2715 A=me.chunyu.spike.wcl_activity_launchmode_demo U=0 sz=5}  
  6.       Run #4: ActivityRecord{1e70110b u0 me.chunyu.spike.wcl_activity_launchmode_demo/.TestBActivity t2715}  
  7.       Run #3: ActivityRecord{c7f4dce u0 me.chunyu.spike.wcl_activity_launchmode_demo/.TestCActivity t2715}  
  8.       Run #2: ActivityRecord{254536cd u0 me.chunyu.spike.wcl_activity_launchmode_demo/.TestBActivity t2715}  
  9.       Run #1: ActivityRecord{36b2da15 u0 me.chunyu.spike.wcl_activity_launchmode_demo/.TestAActivity t2715}  
  10.       Run #0: ActivityRecord{3a1c4a6a u0 me.chunyu.spike.wcl_activity_launchmode_demo/.MainActivity t2715} 

 

棧內: MainActivity -> TestAActivity -> TestBActivity ->TestCActivity -> TestBActivity
SingleTask

棧內復用模式, 只要Activity在一個棧中存在, 多次調用時, 都不會創建實例, 即單例模式.

情況包含以下幾種:
(1) 任務棧不存在, 初次啟動SingleTask實例, 會創建任務棧和實例.

MainActivity啟動TestA, TestA啟動TestB, TestB是SingleTask, 并且任務棧不同. 觀察可知, 系統包含兩個任務棧, TestB位于其他任務棧中.

  1. Stack #1:  
  2.   Running activities (most recent first):  
  3.     TaskRecord{d5d53d4 #2727 A=me.chunyu.spike.stack U=0 sz=1}  
  4.       Run #2: ActivityRecord{1d720e55 u0 me.chunyu.spike.wcl_activity_launchmode_demo/.TestBActivity t2727}  
  5.     TaskRecord{a3f797d #2726 A=me.chunyu.spike.wcl_activity_launchmode_demo U=0 sz=2}  
  6.       Run #1: ActivityRecord{ffd689d u0 me.chunyu.spike.wcl_activity_launchmode_demo/.TestAActivity t2726}  
  7.       Run #0: ActivityRecord{192310ac u0 me.chunyu.spike.wcl_activity_launchmode_demo/.MainActivity t2726} 

 

使用taskAffinity屬性, 添加新的Activity棧, 與SingleTask配合使用, Standard模式無效.

新任務棧是 me.chunyu.spike.stack .
(2) 任務棧存在, 初次啟動SingleTask實例, 會直接入棧, 與Standard模式相同.

(3) 任務棧相同, 再次啟動SingleTask實例, 實例會置于棧頂, 并清除其上面實例, 具有clearTop的效果.

MainActivity啟動TestA, TestA啟動TestB, TestB是SingleTask, TestB啟動TestC, TestC重新啟動TestB, 則TestC會出棧. 觀察可知, TestC出棧, TestB位于棧頂.

  1. Stack #1:  
  2.   Running activities (most recent first):  
  3.     TaskRecord{18230815 #2737 A=me.chunyu.spike.wcl_activity_launchmode_demo U=0 sz=3}  
  4.       Run #4: ActivityRecord{1126c300 u0 me.chunyu.spike.wcl_activity_launchmode_demo/.TestBActivity t2737}  
  5.       Run #3: ActivityRecord{3114fee8 u0 me.chunyu.spike.wcl_activity_launchmode_demo/.TestAActivity t2737}  
  6.       Run #2: ActivityRecord{f8e235d u0 me.chunyu.spike.wcl_activity_launchmode_demo/.MainActivity t2737} 

 

TestC啟動TestB, SingleTask模式, 導致clearTop, TestC出棧.
(4) 任務棧不同, 再次啟動SingleTask實例, 會導致任務棧切換, 后臺置于前臺.

這比較難理解.MainActivity啟動TestA, TestA啟動TestB(SingleTask實例, 不同任務棧), TestB啟動TestC(與B類似), 則MainActivity和TestA相同棧, TestB和TestC相同棧, 此時棧頂是TestC. 按Home鍵, 再次啟動應用, 則默認任務棧會啟動, TestA啟動, TestA啟動TestC. 應用當前狀態如下.

  1. Stack #1:  
  2.   Running activities (most recent first):  
  3.     TaskRecord{1d05e6c9 #2754 A=me.chunyu.spike.stack U=0 sz=2}  
  4.       Run #4: ActivityRecord{3f77e822 u0 me.chunyu.spike.wcl_activity_launchmode_demo/.TestCActivity t2754}  
  5.     TaskRecord{3fe736d0 #2753 A=me.chunyu.spike.wcl_activity_launchmode_demo U=0 sz=2}  
  6.       Run #3: ActivityRecord{15f0470e u0 me.chunyu.spike.wcl_activity_launchmode_demo/.TestAActivity t2753}  
  7.     TaskRecord{1d05e6c9 #2754 A=me.chunyu.spike.stack U=0 sz=2}  
  8.       Run #2: ActivityRecord{181229e6 u0 me.chunyu.spike.wcl_activity_launchmode_demo/.TestBActivity t2754}  
  9.     TaskRecord{3fe736d0 #2753 A=me.chunyu.spike.wcl_activity_launchmode_demo U=0 sz=2}  
  10.       Run #1: ActivityRecord{28628d61 u0 me.chunyu.spike.wcl_activity_launchmode_demo/.MainActivity t2753}  
  11.     TaskRecord{2d646058 #2719 A=com.android.incallui U=0 sz=1

TestC至于棧頂, 點擊Back鍵, 不是返回TestA(啟動TestC的實例), 而是TestB, 即優先返回相同棧的實例. 再次是TestA, 然后是MainActivity, 依次出棧.
SingleInstance

單實例模式, 啟動時, 系統會為其創造一個單獨的任務棧, 以后每次使用, 都會使用這個單例, 直到其被銷毀, 屬于真正的單例模式.

示例: MainActivity啟動TestA, TestA啟動TestB(SingleInstance模式),

TestB啟動TestC, TestC再啟動TestB, 則仍啟動上一次的TestB,

TestC合并入默認棧(MainActivity+TestA).
 

  1. Stack #1:  
  2.   Running activities (most recent first):  
  3.     TaskRecord{384e3928 #2765 A=me.chunyu.spike.wcl_activity_launchmode_demo U=0 sz=1}  
  4.       Run #3: ActivityRecord{1ffc5b6b u0 me.chunyu.spike.wcl_activity_launchmode_demo/.TestBActivity t2765}  
  5.     TaskRecord{2ad03544 #2764 A=me.chunyu.spike.wcl_activity_launchmode_demo U=0 sz=3}  
  6.       Run #2: ActivityRecord{293d8c37 u0 me.chunyu.spike.wcl_activity_launchmode_demo/.TestCActivity t2764}  
  7.       Run #1: ActivityRecord{158bc0f3 u0 me.chunyu.spike.wcl_activity_launchmode_demo/.TestAActivity t2764}  
  8.       Run #0: ActivityRecord{77691cf u0 me.chunyu.spike.wcl_activity_launchmode_demo/.MainActivity t2764} 

startActivityForResult

startActivityForResult不同于startActivity, 使用LaunchMode模式啟動Activity時, 也會有一些不同, 可以正常傳遞數據, 但是無法連續創建自己時, 會生成多份實例.

TestB(singleTask模式)使用startActivity創建自己時, 會使用默認實例, 即單例; 而使用startActivityForResult創建自己時, 會生成一份新的示例.

  1. Stack #1:  
  2.   Running activities (most recent first):  
  3.     TaskRecord{323200ac #2786 A=me.chunyu.clwang.stack U=0 sz=3}  
  4.       Run #4: ActivityRecord{3f9e14f3 u0 me.chunyu.spike.wcl_activity_launchmode_demo/.TestBActivity t2786}  
  5.       Run #3: ActivityRecord{30d8f17b u0 me.chunyu.spike.wcl_activity_launchmode_demo/.TestBActivity t2786}  
  6.       Run #2: ActivityRecord{11b95b5c u0 me.chunyu.spike.wcl_activity_launchmode_demo/.TestBActivity t2786}  
  7.     TaskRecord{c86e175 #2785 A=me.chunyu.spike.wcl_activity_launchmode_demo U=0 sz=2}  
  8.       Run #1: ActivityRecord{3558d7c4 u0 me.chunyu.spike.wcl_activity_launchmode_demo/.TestAActivity t2785}  
  9.       Run #0: ActivityRecord{1b8620c u0 me.chunyu.spike.wcl_activity_launchmode_demo/.MainActivity t2785} 

由此可知, 因為startActivityForResult需要返回值, 會保留實例, 覆蓋單例效果.

注意: 4.x版本通過startActivityForResult啟動singleTask, 無法正常獲取返回值, 參考 .

5.x以上版本修復此問題, 考慮兼容性, 不推薦使用startActivityForResult和singleTask.
Intent設置標志位

Intent可以設置啟動標志位, 即Flag.

  1. intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

AndroidManifest無法設置FLAG_ACTIVITY_CLEAR_TOP, 即清除棧上其他實例; Intent無法設置singleInstance啟動模式. 兩者選其一使用即可, 如都使用, Intent的優先級大于AndroidManifest的優先級.

常用的標志位:

FLAG_ACTIVITY_NEW_TASK: 同singleTask啟動模式.

FLAG_ACTIVITY_SINGLE_TOP: 同singleTop啟動模式.

FLAG_ACTIVITY_CLEAR_TOP: 一般和singleTask啟動模式出現. 如果是singleTask啟動模式, 會清除棧上其他實例, 復用實例, 調用onNewIntent; 如果是standard啟動模式, 即默認模式, 則會清除自己和其他實例, 并重新創建, 調用 onCreate.
顯示棧的Shell命令

Shell命令

  1. adb shell dumpsys activity | sed -n -e '/Stack #/p' -e '/Running activities/,/Run #0/p' 

 

直接獲取Activity信息有些冗余, 我們只關注堆棧信息即可.

sed可以編輯顯示的文字.

-n , 從截取處開始連續處理.

-e , 多選參數.

'/Stack #/p' , 輸出含有 Stack # 的行.

-e '/Running activities/,/Run #0/p' , 輸出從 Running activities 至 Run #0 的所有行.

輸出結果

  1.  
  2.  
  3. Stack #1:  
  4.   Running activities (most recent first):  
  5.     TaskRecord{299f41ea #2269 A=me.chunyu.spike.wcl_activity_launchmode_demo U=0 sz=6}  
  6.       Run #5: ActivityRecord{33926043 u0 me.chunyu.spike.wcl_activity_launchmode_demo/.MainActivity t2269}  
  7.       Run #4: ActivityRecord{3f181566 u0 me.chunyu.spike.wcl_activity_launchmode_demo/.MainActivity t2269}  
  8.       Run #3: ActivityRecord{22737e45 u0 me.chunyu.spike.wcl_activity_launchmode_demo/.MainActivity t2269}  
  9.       Run #2: ActivityRecord{ce0a990 u0 me.chunyu.spike.wcl_activity_launchmode_demo/.MainActivity t2269}  
  10.       Run #1: ActivityRecord{3de8e378 u0 me.chunyu.spike.wcl_activity_launchmode_demo/.MainActivity t2269}  
  11.       Run #0: ActivityRecord{1cb28ec4 u0 me.chunyu.spike.wcl_activity_launchmode_demo/.MainActivity t2269}  
  12. Stack #0:  
  13.   Running activities (most recent first):  
  14.     TaskRecord{bfee9cf #2241 A=com.miui.home U=0 sz=1}  
  15.       Run #0: ActivityRecord{279bc098 u0 com.miui.home/.launcher.Launcher t2241} 

啟動模式做為Activity的重要屬性, 還是需要比較透徹的掌握.

OK, that’s all! Enjoy it!

責任編輯:陳琳 來源: Spike的博客
相關推薦

2017-08-03 10:25:26

AndroidActivity

2014-05-27 15:36:01

AndroidActivity啟動模式

2023-12-09 08:58:30

AndroidActivity啟動模式

2025-01-02 11:20:47

2017-04-10 18:34:16

AndroidNotificatio

2025-06-27 07:19:48

2024-06-05 06:51:11

2021-08-11 17:15:17

AndroidActivity場景

2010-07-22 09:25:09

telnet命令

2010-06-24 15:35:04

IPx協議

2010-03-09 17:19:01

Linux時鐘

2024-08-29 08:28:17

2010-02-06 10:14:36

Android Act

2011-06-02 11:13:10

Android Activity

2010-03-19 12:36:12

無線中繼模式

2009-11-11 17:02:44

MPLS路由協議

2010-10-20 15:11:53

SQL Server作

2024-11-15 10:58:40

2009-01-12 10:27:07

IT職位解析認證

2012-11-15 13:42:29

點贊
收藏

51CTO技術棧公眾號

在线免费观看a视频| 国产一级片av| 久久九九热re6这里有精品| 亚洲.国产.中文慕字在线| 精品久久久久亚洲| 这里只有精品免费视频| 在线观看国产精品入口| 日韩av在线免费观看一区| 亚洲免费一级视频| 99re6在线精品视频免费播放| 国产午夜亚洲精品午夜鲁丝片| 成人av在线亚洲| 日产欧产va高清| 日韩成人影院| 亚洲精品福利视频| 欧美专区第二页| 黄色综合网址| 亚洲一区中文日韩| 亚洲欧洲免费无码| 外国精品视频在线观看 | 久久精品这里热有精品| 久久久老熟女一区二区三区91| 黄色成人在线观看网站| 午夜电影一区二区| 99热都是精品| 1769在线观看| 久久综合久久99| 国产精品二区三区四区| 91影院在线播放| 日韩精品三区四区| 97精品国产97久久久久久春色| 97成人资源站| 久久香蕉国产| 一本一道久久a久久精品逆3p | 午夜美女久久久久爽久久| 国产精品免费在线视频| 国产一区二区精品福利地址| 亚洲国产中文字幕在线观看| www.欧美com| 伊人久久大香线蕉综合影院首页| 日本久久一区二区| www.com毛片| xxxcom在线观看| 亚洲黄色片在线观看| 日本一区二区三区四区五区六区| www在线播放| 国产欧美精品在线观看| 免费国产一区二区| 欧美视频免费一区二区三区| 99在线精品一区二区三区| 成人9ⅰ免费影视网站| 国产日本精品视频| 国产在线观看一区二区| 国产欧美一区二区三区久久| 久久久久久av无码免费看大片| 丝袜诱惑亚洲看片| 国产精品久久久久久超碰| www.com亚洲| 日韩精品一级二级| 国产免费一区视频观看免费| 波多野结衣一区二区在线| 日韩成人免费在线| 国产精品夜色7777狼人| 亚洲一区二区人妻| 极品少妇xxxx偷拍精品少妇| 91久久精品国产| 精品人妻一区二区三区蜜桃| 成人精品在线视频观看| 国产在线一区二区三区欧美| 日色在线视频| 国产亚洲欧美激情| 伊人久久大香线蕉成人综合网| 麻豆最新免费在线视频| 亚洲精品自拍动漫在线| 欧美在线一区视频| 亚洲永久av| 欧美日韩在线直播| 亚洲区 欧美区| 日本一区福利在线| 曰本色欧美视频在线| 污软件在线观看| 亚洲国内精品| 国产精品国产亚洲伊人久久| 国产美女www爽爽爽视频| 成人a区在线观看| 日本高清久久一区二区三区| 欧美激情免费| 午夜精品久久久久久久| 国产精品久久久久9999小说| 国产精品一区二区美女视频免费看| 精品国产一二三区| 亚洲图片另类小说| 自拍偷拍欧美| 欧美中文在线视频| 99国产揄拍国产精品| 91在线小视频| 国产精品波多野结衣| caoporn-草棚在线视频最| 在线视频欧美精品| 亚洲av综合色区无码另类小说| 国产精品日韩精品中文字幕| 免费av在线一区| 亚洲第一网站在线观看| 国产v日产∨综合v精品视频| 日韩精品久久一区二区三区| 五月婷婷视频在线观看| 欧美色视频一区| 日本黄色免费观看| 久久久久美女| 国产精品h在线观看| 懂色av蜜臀av粉嫩av分享吧| 日本一区二区高清| 久久精品免费一区二区| 精品国产乱码一区二区三区 | 99r国产精品视频| 免费一级在线观看播放网址| 亚洲一区二区三区小说| 欧美三级理论片| 丝袜美腿一区二区三区动态图| 精品精品国产国产自在线| 中文字幕激情小说| 粉嫩在线一区二区三区视频| 一区二区不卡在线观看| 中老年在线免费视频| 日韩免费高清av| 女人18毛片毛片毛片毛片区二 | 亚洲欧美激情小说另类| 男人的天堂日韩| 日韩精品丝袜美腿| 久久人人爽人人爽人人片av高请 | 精品人妻在线播放| 国产一区二区美女| 一区二区三区四区欧美日韩| 免费观看成人性生生活片| 亚洲国产日韩欧美在线图片| 久久久久免费看| 国内精品视频一区二区三区八戒| 婷婷久久伊人| 久久久久久久性潮| 一区二区亚洲精品国产| 亚洲av无码精品一区二区| 91网站在线播放| 人人干视频在线| 高潮按摩久久久久久av免费| 欧美日韩成人免费| www.综合色| 樱桃国产成人精品视频| 中文字幕在线视频一区二区| 一区二区三区国产精华| 成人国产精品一区二区| 欧美性videos| 在线播放日韩导航| 国产精品久久久免费看| 美女网站视频久久| 亚洲午夜精品久久久中文影院av | 制服丝袜日韩国产| 天天色影综合网| 国产精品99久久久久久久女警| 九一免费在线观看| 成人h动漫免费观看网站| 久久久久久久久久久免费| 国产 日韩 欧美 精品| 一区二区三区成人| 好男人香蕉影院| 亚洲综合好骚| 色综合久久av| 永久免费观看精品视频| 欧美日韩爱爱视频| 三级理论午夜在线观看| 欧美性极品少妇| 日日噜噜夜夜狠狠久久波多野| 国产成人小视频| 131美女爱做视频| 精品一区二区三| 91久久国产综合久久91精品网站 | 国产精品麻豆va在线播放| 午夜不卡视频| 欧美成人一区二区| 精品成人av一区二区在线播放| 国产无人区一区二区三区| 日本人69视频| 在线电影一区| 天天爽天天狠久久久| 警花av一区二区三区| 97精品国产aⅴ7777| 成年人在线观看网站| 91精品婷婷国产综合久久性色| jizz国产免费| 国产欧美一区二区精品性色超碰| 黄色片免费网址| 99热这里只有精品8| 亚洲欧洲一区二区| 国产毛片久久久| 国产精品日韩一区| 国产精品一区hongkong| 一区二区在线视频播放| 亚洲国产成人一区二区 | 91精品国产色综合久久不卡98| 国产小视频在线观看| 制服视频三区第一页精品| 精品成人久久久| 亚洲欧洲三级电影| 日本高清www| 国产精品一区免费在线观看| 成熟老妇女视频| 自拍偷拍欧美| 亚洲国产精品123| 欧美综合精品| 91九色在线观看| 97精品国产综合久久久动漫日韩| 国模私拍视频一区| 久久日韩视频| 亚洲人免费视频| 欧美 日韩 国产 成人 在线| 欧美日韩精品电影| 中文字幕一区在线播放| 亚洲伊人伊色伊影伊综合网| 欧美肥妇bbwbbw| 日本一区二区动态图| 国产美女喷水视频| 成人性生交大片免费看中文网站| 色一情一区二区三区| 久久人人97超碰国产公开结果| 久久av综合网| 欧美.www| 女女同性女同一区二区三区按摩| 精品一区av| 日本精品一区二区三区不卡无字幕 | 精品久久久久久久中文字幕 | 欧美性生交大片免费| 国产一级在线观看视频| 日韩理论片网站| 战狼4完整免费观看在线播放版| 久久影院电视剧免费观看| 91亚洲一线产区二线产区| 精品在线观看视频| 潘金莲激情呻吟欲求不满视频| 久久综合激情| 日韩中文字幕免费在线| 国产精品一区毛片| 人妻少妇精品无码专区二区| 亚洲成人在线| 免费无码毛片一区二三区| 亚洲小说欧美另类婷婷| 日本一本中文字幕| 狠狠色综合网| 农民人伦一区二区三区| 亚洲国产专区校园欧美| a在线视频观看| 在线亚洲一区| 免费看又黄又无码的网站| 99成人在线| 国产精品后入内射日本在线观看| 日韩午夜黄色| 怡红院av亚洲一区二区三区h| 国产日韩欧美三级| 日韩中文字幕免费在线| 免费黄网站欧美| 在线一区二区不卡| 国产精品91xxx| 成人手机在线免费视频| 久久综合色婷婷| 欧美精品日韩在线| 亚洲品质自拍视频| 少妇影院在线观看| 午夜婷婷国产麻豆精品| 亚洲婷婷综合网| 欧美丝袜自拍制服另类| 国产情侣激情自拍| 亚洲第一福利在线观看| 免费在线黄色网址| 久久精品成人一区二区三区| caopon在线免费视频| 久久久久亚洲精品国产| 精品国产免费人成网站| 国产视频福利一区| 国产精品xxx在线观看| 欧美精品二区三区四区免费看视频| 欧美偷拍综合| 强开小嫩苞一区二区三区网站| 久久久久中文字幕亚洲精品| 国产91在线|亚洲| 在线观看国产三级| 国产精品污www在线观看| 18岁成人毛片| 黑人巨大精品欧美一区二区三区| 糖心vlog精品一区二区| 日韩美女在线视频| 国产在线超碰| 欧美成人激情视频| 欧美色网一区| 亚洲影视九九影院在线观看| 六月丁香久久丫| 一本色道婷婷久久欧美 | www一区二区www免费| 美腿丝袜亚洲三区| 深田咏美中文字幕| 国产精品高潮呻吟久久| 日韩欧美三级视频| 欧美精品乱人伦久久久久久| 天天干天天爱天天操| 日韩亚洲欧美成人| 都市激情亚洲综合| 91成人免费视频| 精品一区二区三区的国产在线观看| 男人天堂av片| 精品综合久久久久久8888| 日本japanese极品少妇| 亚洲欧美一区二区三区孕妇| 丰满少妇xoxoxo视频| 欧美zozo另类异族| 日本高清视频在线播放| 欧美在线视频免费| 中文字幕视频精品一区二区三区| 午夜欧美性电影| 午夜一级在线看亚洲| 日韩大尺度视频| 日韩理论片在线| 一区二区精品视频在线观看| 亚洲免费视频一区二区| 182在线视频观看| 91aaaa| 综合久久十次| gai在线观看免费高清| 国产视频一区在线播放| 国产精品一区二区三区四区五区| v天堂福利视频在线观看| 国产精品久久久久久久久久久久| 日韩系列在线| 人妻夜夜添夜夜无码av| 国产成人av电影| 亚洲最大的黄色网址| 欧美日韩久久久一区| 成人免费在线视频网| 日本精品视频在线| 性欧美xxxx免费岛国不卡电影| 久无码久无码av无码| 成人免费视频视频在线观看免费| 成年人一级黄色片| 91精品国产入口在线| 久草资源在线| 91精品视频一区| 91精品国产自产拍在线观看蜜| 天堂在线中文在线| 综合久久久久久久| av一区二区三| 九九九久久久久久| 大型av综合网站| 日本a在线免费观看| 97精品超碰一区二区三区| www..com国产| 精品亚洲va在线va天堂资源站| 波多野结衣亚洲| 欧洲精品久久| 免费在线观看视频一区| 91狠狠综合久久久| 精品少妇一区二区三区视频免付费 | 日韩免费高清视频网站| 日韩国产小视频| 成人免费av在线| 天天干,天天干| 最新中文字幕亚洲| 国产日韩在线观看视频| 丰满少妇大力进入| 久久精品视频一区二区| 伊人网综合在线| 久热在线中文字幕色999舞| 盗摄系列偷拍视频精品tp| 国产主播在线看| 国产精品黄色在线观看| av在线免费在线观看| 97视频免费观看| 欧美一级本道电影免费专区| 亚洲图片 自拍偷拍| 亚洲国产综合视频在线观看| 少妇激情av一区二区| 国产精品一区二区三区毛片淫片 | 成人精品中文字幕| 97超碰人人看| 欧美日韩午夜剧场| 视频一区二区三区不卡| 成人自拍爱视频| 日本视频中文字幕一区二区三区| 永久免费看mv网站入口| 亚洲国产97在线精品一区| 久久人体大尺度| 精品久久久无码人妻字幂| 91亚洲精华国产精华精华液| 亚洲天堂久久久久| 97视频在线观看免费高清完整版在线观看 | 免费影院在线观看一区| 久久99精品久久只有精品| 精品99在线观看| 国产一区二区三区在线视频| 视频精品一区| 丝袜制服一区二区三区| 亚洲国产欧美在线| 日本蜜桃在线观看| 精品蜜桃传媒| 国产黑丝在线一区二区三区|