自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

不瞞大家,我在湖北的這 2 個(gè)月,體驗(yàn)了 Android 的這個(gè)功能,真香!

企業(yè)動(dòng)態(tài)
在家遠(yuǎn)程辦公的這段時(shí)間,除了正常的工作學(xué)習(xí)之外,精神娛樂也少不了,肉身和空間上的限制,也無法阻礙對(duì)精神世界的追求。但無論怎么玩出了花樣,多數(shù)時(shí)候還是脫離不了手機(jī)這個(gè)小小的屏幕。

 ?[[320308]]?

一、序

大家好,我是承香墨影。不瞞大家說,我已經(jīng)在湖北待了 2 個(gè)多月了。

前期一直處于封禁狀態(tài),隨著疫情的好轉(zhuǎn),現(xiàn)在已經(jīng)可以出去吃碗熱干面了。

在家遠(yuǎn)程辦公的這段時(shí)間,除了正常的工作學(xué)習(xí)之外,精神娛樂也少不了,肉身和空間上的限制,也無法阻礙對(duì)精神世界的追求。但無論怎么玩出了花樣,多數(shù)時(shí)候還是脫離不了手機(jī)這個(gè)小小的屏幕。

最近我深度體驗(yàn)了 Android 中的一個(gè)功能,一個(gè)以前讓我嗤之以鼻,覺得沒有任何大用的功能,最近深度體驗(yàn)之后,發(fā)現(xiàn)真香。

這個(gè)功能就是 Android 的分屏功能。在家的這段時(shí)間,發(fā)現(xiàn)大概只有手機(jī)的屏幕,才是自己能夠獨(dú)享的。

雖然 App 之間的切換,已經(jīng)可以做到非常的順暢,但是如果你在刷劇的時(shí)候還要切到微信回復(fù)消息,之后再切回來,這樣的體驗(yàn)無疑是非常差的。還別說有時(shí)候我無法忍受劇情的拖沓,總想著看著劇的同時(shí)再干點(diǎn)什么,例如刷個(gè)淘寶京東什么的。

這種需求,分屏模式就可以滿足。

??

上圖中就是我比較常用的 2 個(gè)場(chǎng)景,刷劇和游戲之余,還想干點(diǎn)別的,例如聊天、購(gòu)物等等。

那我們今天就來聊聊 Android 的多窗口模式,以及使用它需要注意的一些點(diǎn)。另外有些 App 禁用了多窗口模式,但是依然有辦法強(qiáng)制多窗口,我們一起來聊聊。

二、Android 的分屏模式

2.1 什么是多窗口模式

Android 從 N(7.0,API Level 24) 開始支持多窗口模式,或者叫分屏模式,即允許在屏幕上同時(shí)打開多個(gè) App,同時(shí)顯示多個(gè)窗口。

近幾年的新手機(jī),應(yīng)該都是緊跟最新的系統(tǒng),7.0 的發(fā)布也有好幾年了,我想大家應(yīng)該都可以享受到。

??

其實(shí)分屏模式使用起來很簡(jiǎn)單,在最近打開任務(wù)窗口(Overview Screen)中,可以長(zhǎng)按 App,選擇進(jìn)入分屏模式。

??

2.2 分屏的生命周期

分屏模式支持同時(shí)打開 2 個(gè) App 或者打開某個(gè) App 的 2 個(gè)頁(yè)面,當(dāng)然這需要特殊的技巧,后面會(huì)說到。

說回到生命周期,當(dāng)切換分屏模式時(shí),如果不做任何處理,Activity 會(huì)觸發(fā)銷毀再重建,這個(gè)過程相信大家應(yīng)該比較熟悉,畢竟切換個(gè)屏幕方向,Activity 默認(rèn)都會(huì)銷毀重建。

如果想禁用 Activity 銷毀重建,則配置 android:configChanges 屬性即可。

android:configChanges="screenLayout|screenSize|smallestScreenSize|orientation"

分屏模式還增加了一個(gè)系統(tǒng)回調(diào) onMultiWindowModeChanged(isInMultiWindowMode) 方法,可以通過它的參數(shù) isInMultiWindowMode 參數(shù)判斷多屏模式的進(jìn)入和退出。

除此之外,如果想要主動(dòng)判斷當(dāng)前是否處于分屏模式,可以通過 Activity 或 Fragment 的 inMultiWindow() 進(jìn)行判斷。

2.3 打開分屏的頁(yè)面

默認(rèn)情況下,同一個(gè) App 的多個(gè) Activity 會(huì)共用同一個(gè)窗口,且無法分配到不同的窗口中。

所以我們?cè)诜制聊J较?,打開某個(gè)頁(yè)面,實(shí)際上還是在當(dāng)前窗口中打開,如果想讓新頁(yè)面被分配到不同的窗口中,可以通過給 Intent 設(shè)置 FLAG_ACTIVITY_LAUNCH_ADJACENT 標(biāo)識(shí)來實(shí)現(xiàn)。

當(dāng)處于分屏模式下時(shí),通過該 Flag,新 Activity 就會(huì)在新的棧中被啟動(dòng),以此實(shí)現(xiàn) 2 個(gè) Activity 被放置在不同的窗口中。

Intent intent=new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT);
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);

實(shí)際效果如下:

??

需要注意的是,該 Flag 隨著 Android N 的支持,所以在使用時(shí)需要判斷是否大于等于 Api Level 24。

另外我們也無需額外的判斷是否處于分屏狀態(tài),如果當(dāng)前不處于分屏狀態(tài),則該 Flag 的設(shè)置無效。

2.4 支持分屏

前面提到,分屏模式由 Android 7.0 引入。那么如果 targetSdkVersion 被設(shè)置為 N 及以上時(shí),分屏是默認(rèn)開啟的,反之則是默認(rèn)關(guān)閉。

分屏模式由 Application 的 android:resizeableActivity 屬性控制,true 為開啟,false 為關(guān)閉。我們可以通過這個(gè)屬性,主動(dòng)管理分屏模式。

這就把是否支持分屏模式的權(quán)限,交到了開發(fā)者手中,但是我作為一個(gè)使用者,我在分屏模式下,打開某個(gè) App 時(shí)提示我不支持,其實(shí)是一個(gè)非常不好的體驗(yàn)。

例如今日頭條,本身是不支持分屏模式的,當(dāng)我們嘗試以分屏模式打開它的時(shí)候,會(huì)以全屏模式打開 App,并且彈出一個(gè) Toast 提示。

????

這種體驗(yàn)肯定是非常差勁的,那么我們有什么辦法讓 App 強(qiáng)制支持分屏模式呢?

這就需要借助「開發(fā)者模式」了,通過「開發(fā)者模式」下的 2 個(gè)開關(guān),來強(qiáng)制讓所有 App 都支持分屏模式,并且可以調(diào)整窗口大小。

??

需要注意的是,調(diào)整這 2 個(gè)開關(guān),是需要重啟后才會(huì)生效。同時(shí)這種強(qiáng)制的行為本身也是開發(fā)者預(yù)料之外的,所以如果出現(xiàn)一些小問題也是符合預(yù)期的。

當(dāng)我們把 2 個(gè)開關(guān)打開后,所有的 App 都能夠支持分屏模式,并且可以調(diào)整窗口大小。

????

三、小結(jié)時(shí)刻

分屏這個(gè)功能就說到這里,其實(shí)對(duì)于開發(fā)者來說,多數(shù)時(shí)候我們并不需要特殊設(shè)置什么,當(dāng) targetSdkVersion 為 24 的時(shí)候,其實(shí)已經(jīng)默認(rèn)支持。當(dāng)然如果我們想要針對(duì)分屏模式做一些功能,也有對(duì)應(yīng)的 Api 支持。

最后簡(jiǎn)單小結(jié)一下:

1. 分屏模式在 Android N 開始是默認(rèn)打開的,通常不需要做什么也可以適配;

2. 可以通過 onMultiWindowModeChanged() 監(jiān)聽多窗口模式的切換,也可以通過 inMultiWindow() 主動(dòng)判斷當(dāng)前是否是多窗口模式;

3. 如果不想支持分屏模式,可以通過 android:resizeableActivity 來控制;

4. 如果想要強(qiáng)制全部 App 支持分屏模式,可以在「開發(fā)者模式」中設(shè)置,讓所有 App 都強(qiáng)制支持分屏模式;

??

【本文為51CTO專欄作者“張旸”的原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)通過微信公眾號(hào)聯(lián)系作者獲取授權(quán)】

??戳這里,看該作者更多好文??

 

責(zé)任編輯:武曉燕 來源: 51CTO專欄
相關(guān)推薦

2019-05-30 06:37:38

網(wǎng)絡(luò)故障網(wǎng)絡(luò)協(xié)議網(wǎng)絡(luò)

2020-05-19 21:06:17

任正非華為員工

2013-07-17 09:13:19

2022-03-22 09:20:57

應(yīng)用線程池技術(shù)

2025-04-23 08:02:44

2021-08-09 08:24:08

時(shí)間工作生活

2024-10-29 15:29:06

2022-07-29 14:11:51

前端瀏覽器

2021-12-15 06:18:23

iOS15.2蘋果 iOS

2022-05-27 12:20:18

微信智能手機(jī)

2009-04-28 18:59:56

LinuxWindows體驗(yàn)

2025-01-02 08:21:32

2019-03-15 15:06:08

華為生態(tài)伙伴大會(huì)智慧島

2017-11-09 14:40:49

懸浮Tab代碼

2021-01-03 16:42:52

Windows 10Windows操作系統(tǒng)

2019-07-09 16:00:18

阿里數(shù)據(jù)庫(kù)技術(shù)思維

2021-12-03 10:46:49

ELKGraylog運(yùn)維

2020-04-09 08:29:50

編程語(yǔ)言事件驅(qū)動(dòng)

2019-07-15 09:21:45

技術(shù)思維阿里

2021-12-02 06:34:34

GraylogELK日志
點(diǎn)贊
收藏

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