新四季網

一種切換導航欄的方法及裝置與流程

2023-10-09 19:55:24 5


本發明屬於數據處理技術領域,尤其涉及一種切換導航欄的方法及裝置。



背景技術:

在android電視應用中,很多時候app都會有導航欄,有時可能還是兩三級導航欄聯動效果,在導航欄切換過程中,需要重新請求該導航欄目下的內容,才可以實現切換。

一般來說,android電視/盒子都是利用遙控器控制切換,在切換時,如果一直按著遙控器不動,就會控制焦點不停的切換,導航欄就會頻繁的刷新請求數據,若有多級導航欄聯動,刷新請求數據的操作將會成幾何方式增長,這樣就導致用戶的操作效率低,體驗度不高。



技術實現要素:

針對現有技術存在的問題,本發明實施例提供了一種切換導航欄的方法及裝置,用於解決現有技術中在快速切換android電視或android盒子上的導航欄時,導航欄就會頻繁的刷新請求數據導致用戶操作效率降低的技術問題。

本發明提供一種切換導航欄的方法,所述方法包括:

接收遙控器發送的當前按鍵事件消息,並按照預設的延遲時間對所述當前按鍵事件消息進行延遲;

接收與所述當前按鍵事件消息對應的下次按鍵事件消息,判斷所述下次按鍵事件消息與所述當前按鍵事件消息之間的時間間隔是否大於所述預設的延遲時間,若所述時間間隔大於所述預設的延遲時間,則根據所述當前按鍵事件消息對所述導航欄進行切換。

上述方案中,若所述時間間隔不大於所述預設的延遲時間,還包括:

刪除所述當前按鍵事件消息,根據所述下次按鍵事件消息對所述導航欄進行切換。

上述方案中,所述根據所述當前按鍵事件消息對所述導航欄進行切換之前,還包括:

判斷所述當前按鍵事件消息的第一輸入方向與所述下次按鍵事件消息的第二輸入方向是否一致,若一致,則根據所述當前按鍵事件消息對所述導航欄進行切換。

上述方案中,所述若所述時間間隔大於所述預設的延遲時間,則根據所述當前按鍵事件消息對所述導航欄進行切換,包括:

標記待處理消息的名稱;

判斷所述當前按鍵事件消息的名稱與所述待處理消息的名稱是否一致,若一致,調用onitemselectlistener.onitemposselect函數將所述當前按鍵事件消息分發至主線程的處理頁面中,利用所述主線程對所述當前待處理消息進行處理。

上述方案中,所述刪除所述當前按鍵事件消息,根據所述下次按鍵事件消息對所述導航欄進行切換,包括:

利用handler刪除所述主線程消息隊列中的當前按鍵事件消息;

判斷所述下次按鍵事件消息的名稱與所述待處理消息的名稱是否一致,若一致,利用handler.obtainmessage(0)函數獲取所述下次按鍵事件消息;

利用handler將所述下次按鍵事件消息發送至主線程處理頁面中;

利用所述主線程對所述下次按鍵事件消息進行處理。

本發明還提供一種切換導航欄的裝置,所述裝置包括:

延遲單元,用於接收遙控器發送的當前按鍵事件消息,並按照預設的延遲時間對所述當前按鍵事件消息進行延遲;

判斷單元,用於接收與所述當前按鍵事件消息對應的下次按鍵事件消息,判斷所述下次按鍵事件消息與所述當前按鍵事件消息之間的時間間隔是否大於所述預設的延遲時間,若所述時間間隔大於所述預設的延遲時間,則根據所述當前按鍵事件消息對所述導航欄進行切換。

上述方案中,所述裝置還包括:判斷單元還用於:

若所述時間間隔不大於所述預設的延遲時間,刪除所述當前按鍵事件消息,根據所述下次按鍵事件消息對所述導航欄進行切換。

上述方案中,所述判斷單元還用於:

根據所述當前按鍵事件消息對所述導航欄進行切換之前,判斷所述當前按鍵事件消息的第一輸入方向與所述下次按鍵事件消息的第二輸入方向是否一致,若一致,則根據所述當前按鍵事件消息對所述導航欄進行切換。

上述方案中,所述判斷單元具體用於:

標記待處理消息的名稱;

判斷所述當前按鍵事件消息的名稱與所述待處理消息的名稱是否一致,若一致,調用onitemselectlistener.onitemposselect函數將所述當前按鍵事件消息分發至主線程的處理頁面中,利用所述主線程對所述當前待處理消息進行處理。

上述方案中,所述判斷單元具體還用於:

利用handler刪除所述主線程消息隊列中的當前按鍵事件消息;

判斷所述下次按鍵事件消息的名稱與所述待處理消息的名稱是否一致,若一致,利用handler.obtainmessage(0)函數獲取所述下次按鍵事件消息;

利用handler將所述下次按鍵事件消息發送至主線程的處理頁面中;

利用所述主線程對所述下次按鍵事件消息進行處理。

本發明提供了一種切換導航欄的方法及裝置,所述方法包括:接收遙控器發送的當前按鍵事件消息,並按照預設的延遲時間對所述當前按鍵事件消息進行延遲;接收當前與按鍵事件消息對應的下次按鍵事件消息,判斷所述下次按鍵事件消息與所述當前按鍵事件消息之間的時間間隔是否大於所述預設的延遲時間,若所述時間間隔大於所述預設的延遲時間,則根據所述當前按鍵事件消息對所述導航欄進行切換;如此,接收到當前按鍵事件消息後,會按照預設的延遲時間將當前按鍵事件消息進行延遲,當用戶繼續按下遙控器切換導航欄目時,接收到下次按鍵事件消息,只有兩次事件消息的時間間隔大於預設的延遲時間後,才會將當前按鍵事件消息分發至處理頁面進行處理,從而能根據所述當前按鍵事件消息對所述導航欄進行切換;這樣利用消息延遲機制來優化數據請求,降低了數據請求的刷新次數,進而提高了用戶的操作效率。

附圖說明

圖1為本發明實施例一提供的切換導航欄方法流程示意圖;

圖2為本發明實施例二提供的切換導航欄裝置結構示意圖。

具體實施方式

為了在切換導航欄時可以提高用戶的操作效率,本發明提供了一種切換導航欄的方法及裝置,所述方法包括:接收遙控器發送的當前按鍵事件消息,並按照預設的延遲時間對所述當前按鍵事件消息進行延遲;接收與當前按鍵事件消息對應的下次按鍵事件消息,判斷所述下次按鍵事件消息與所述當前按鍵事件消息之間的時間間隔是否大於所述預設的延遲時間,若所述時間間隔大於所述預設的延遲時間,則根據所述當前按鍵事件消息對所述導航欄進行切換。

下面通過附圖及具體實施例對本發明的技術方案做進一步的詳細說明。

實施例一

本實施例提供一種切換導航欄的方法,如圖1所示,所述方法包括:

s101,接收遙控器發送的當前按鍵事件消息,並按照預設的延遲時間對所述當前按鍵事件消息進行延遲。

本步驟中,當用戶需通過切換安卓tv或安卓盒子的導航欄來觀看不同的電視節目時,一般是利用遙控器輸入按鍵事件消息來切換導航欄,那麼伺服器就會接收遙控器發送的當前按鍵事件消息,並對當前按鍵事件消息進行監聽來獲取遙控器的第一輸入方向。所述按鍵事件一般是指遙控器的onkey事件。

具體地,對當前按鍵事件消息進行監聽來獲取遙控器的輸入方向包括:獲取當前按鍵事件消息的第一keyevent事件消息,利用所述第一keyevent事件消息的第一鍵碼值來確定當前按鍵事件消息的第一輸入方向。

這裡,為了避免用戶在同樣的輸入方向進行頻繁操作(比如第一次的輸入方向為下,第二次輸入方向還為下),導致導航欄切換的數據請求被頻繁刷新,所以在接收到當前按鍵事件消息後,將按照預設的延遲時間對所述當前按鍵事件消息進行延遲。一般來說,預設的延遲時間可以包括300~400ms,具體的延遲時間可以根據伺服器的性能進行確定,本實施例中延遲時間為300ms。

s102,接收當前按鍵事件消息的下次按鍵事件消息,判斷所述下次按鍵事件消息與所述當前按鍵事件消息之間的時間間隔是否大於所述預設的延遲時間,若所述時間間隔大於所述預設的延遲時間,則根據所述當前按鍵事件消息對所述導航欄進行切換。

本步驟中,當用戶利用遙控器輸入當前按鍵事件消息的下次按鍵事件消息後,判斷所述下次按鍵事件消息與所述當前按鍵事件消息之間的時間間隔是否大於所述預設的延遲時間,若所述時間間隔大於所述預設的延遲時間,說明當前按鍵事件消息是用戶的需求,則利用回調函數將當前按鍵事件消息分發至處理頁面,根據所述當前按鍵事件消息對所述導航欄進行切換。

具體地,在利用回調函數將當前按鍵事件消息分發至處理頁面,根據所述當前按鍵事件消息對所述導航欄進行切換時,首先定義所述回調函數的接口onitemselectlistener,並在接口中定義回調函數onitemposselect。

然後標記待處理消息的名稱,比如待處理消息為message.what=0的消息。

在定義好回調函數的接口及回調函數後,定義消息處理函數handler,然後判斷所述當前按鍵事件消息的名稱與所述待處理消息的名稱是否一致,若一致,消息隊列messagequeue會把前按鍵事件消息分發給handler,所述handler就會處理消息調用函數handlemessage,即通過調用onitemselectlistener.onitemposselect函數將所述當前按鍵事件消息分發至主線程的處理頁面中,利用所述主線程對所述當前待處理消息進行處理,處理完畢後,即能實現導航欄的切換。

這裡,若所述時間間隔不大於所述預設的延遲時間,說明消息隊列messagequeue還未將當前按鍵事件消息分發至主線程的處理頁面中,此時將刪除所述當前按鍵事件,根據所述下次按鍵事件消息對所述導航欄進行切換。

所述刪除所述當前按鍵事件,根據所述下次按鍵事件消息對所述導航欄進行切換,具體包括:

利用handler刪除所述主線程消息隊列中的當前按鍵事件消息;判斷所述下次按鍵事件消息的名稱與所述待處理消息的名稱是否一致,若一致,利用handler.obtainmessage(0)函數獲取所述下次按鍵事件消息;利用handler將所述下次按鍵事件消息發送至主線程處理頁面中;利用所述主線程對所述下次按鍵事件消息進行處理,處理完畢後,即能實現導航欄的切換。

當然,在獲取到下次按鍵事件消息後,也是需要按照預設的延遲時間利用函數handler.sendmessagedelayed(message,300)將下次待處理消息進行延遲,如此不斷地進行循環處理。這樣,當用戶按下遙控器切換導航欄目時,通過handler延遲300ms發送事件消息message,也就是說handler把消息message發送到了消息隊列messagequeue,messagequeue會阻塞300ms才分發消息出去,這樣用戶在快速輸入相同方向的兩次按鍵時,避免了頻繁請求數據,優化了數據請求。實際應用中,比如,預設的延遲時間為200ms,如果用戶每隔500ms按一次鍵的話,當用戶按下兩次鍵時,本實施例提供的方法中,只向伺服器發送一次數據請求;但是按照現有的方法來實施的話,每一次按鍵都需要向伺服器發送數據請求,這樣就增加了伺服器的處理頻率,降低了伺服器的處理效率,導致用戶的操作效率低。

這裡,因本實施例提供的方法是基於遙控案器發送的兩次按鍵事件消息是輸入同方向來說的,所以在根據所述當前按鍵事件消息對所述導航欄進行切換之前,還包括:判斷所述當前按鍵事件消息的第一輸入方向與所述下次按鍵事件消息的第二輸入方向是否一致,若一致,則根據所述當前按鍵事件消息對所述導航欄進行切換。

同樣地,判斷下次按鍵事件消息的第二輸入方向與判斷當前按鍵事件消息的第一輸入方向的方法相同,具體地,獲取下次按鍵事件消息的第二keyevent事件消息,利用所述第二keyevent事件消息的第二鍵碼值來確定下次按鍵事件消息的第二輸入方向。

實施例二

相應於實施例一,本實施例提供一種切換導航欄的裝置,如圖2所示,所述裝置包括:延遲單元21及判斷單元22;其中,

當用戶需通過切換安卓tv或安卓盒子的導航欄來觀看不同的電視節目時,一般是利用遙控器輸入按鍵事件消息來切換導航欄,那麼延遲單元21就會接收遙控器發送的當前按鍵事件消息,並對當前按鍵事件消息進行監聽來獲取遙控器的第一輸入方向。所述按鍵事件一般是指遙控器的onkey事件。

具體地,延遲單元21對當前按鍵事件消息進行監聽來獲取遙控器的輸入方向包括:獲取當前按鍵事件消息的第一keyevent事件消息,利用所述第一keyevent事件消息的第一鍵碼值來確定當前按鍵事件消息的第一輸入方向。

這裡,為了避免用戶在同樣的輸入方向進行頻繁操作(比如第一次的輸入方向為下,第二次輸入方向還為下),導致導航欄切換的數據請求被頻繁刷新,所以延遲單元21在接收到當前按鍵事件消息後,將按照預設的延遲時間對所述當前按鍵事件消息進行延遲。一般來說,預設的延遲時間可以包括300~400ms,具體的延遲時間可以根據伺服器的性能進行確定,本實施例中延遲時間為300ms。

當用戶利用遙控器輸入當前按鍵事件消息的下次按鍵事件消息後,所述判斷單元22用於判斷所述下次按鍵事件消息與所述當前按鍵事件消息之間的時間間隔是否大於所述預設的延遲時間,若所述時間間隔大於所述預設的延遲時間,說明當前按鍵事件消息是用戶的需求,則利用回調函數將當前按鍵事件消息分發至處理頁面,根據所述當前按鍵事件消息對所述導航欄進行切換。

具體地,判斷單元22在利用回調函數將當前按鍵事件消息分發至處理頁面,根據所述當前按鍵事件消息對所述導航欄進行切換時,首先定義所述回調函數的接口onitemselectlistener,並在接口中定義回調函數onitemposselect。

然後標記待處理消息的名稱,比如待處理消息為message.what=0的消息。

在定義好回調函數的接口及回調函數後,定義消息處理函數handler,然後判斷所述當前按鍵事件消息的名稱與所述待處理消息的名稱是否一致,若一致,消息隊列messagequeue會把前按鍵事件消息分發給handler,所述handler就會處理消息調用函數handlemessage,即通過調用onitemselectlistener.onitemposselect函數將所述當前按鍵事件消息分發至主線程的處理頁面中,利用所述主線程對所述當前待處理消息進行處理,處理完畢後,即能實現導航欄的切換。

這裡,若判斷單元22判斷所述時間間隔不大於所述預設的延遲時間,說明消息隊列messagequeue還未將當前按鍵事件消息分發至主線程的處理頁面中,此時將刪除所述當前按鍵事件,根據所述下次按鍵事件消息對所述導航欄進行切換。

所述判斷單元22所述刪除所述當前按鍵事件,根據所述下次按鍵事件消息對所述導航欄進行切換,具體包括:

利用handler刪除所述主線程消息隊列中的當前按鍵事件消息;所述判斷單元22還用於判斷所述下次按鍵事件消息的名稱與所述待處理消息的名稱是否一致,若一致,利用handler.obtainmessage(0)函數獲取所述下次按鍵事件消息;利用handler將所述下次按鍵事件消息發送至主線程處理頁面中;利用所述主線程對所述下次按鍵事件消息進行處理,處理完畢後,即能實現導航欄的切換。

當然,所述延遲單元21在獲取到下次按鍵事件消息後,也是需要按照預設的延遲時間利用函數handler.sendmessagedelayed(message,300)將下次待處理消息進行延遲,如此不斷地進行循環處理。這樣,當用戶按下遙控器切換導航欄目時,通過handler延遲300ms發送事件消息message,也就是說handler把消息message發送到了消息隊列messagequeue,messagequeue會阻塞300ms才分發消息出去,這樣用戶在快速輸入相同方向的兩次按鍵時,避免了頻繁請求數據,優化了數據請求。實際應用中,比如,預設的延遲時間為200ms,如果用戶每隔500ms按一次鍵的話,當用戶按下兩次鍵時,本實施例提供的方法中,只向伺服器發送一次數據請求;但是按照現有的方法來實施的話,每一次按鍵都需要向伺服器發送數據請求,這樣就增加了伺服器的處理頻率,降低了伺服器的處理效率,導致用戶的操作效率低。

這裡,因本實施例提供的方法是基於遙控案器發送的兩次按鍵事件消息是輸入同方向來說的,所以在根據所述當前按鍵事件消息對所述導航欄進行切換之前,所述判斷單元22還用於:判斷所述當前按鍵事件消息的第一輸入方向與所述下次按鍵事件消息的第二輸入方向是否一致,若一致,則根據所述當前按鍵事件消息對所述導航欄進行切換。

同樣地,所述判斷單元22判斷下次按鍵事件消息的第二輸入方向與判斷當前按鍵事件消息的第一輸入方向的方法相同,具體地,獲取下次按鍵事件消息的第二keyevent事件消息,利用所述第二keyevent事件消息的第二鍵碼值來確定下次按鍵事件消息的第二輸入方向。

本發明實施例提供的切換導航欄的方法及裝置能帶來的有益效果至少是:

本發明提供了一種切換導航欄的方法及裝置,所述方法包括:接收遙控器發送的當前按鍵事件消息,並按照預設的延遲時間對所述當前按鍵事件消息進行延遲;接收與當前按鍵事件消息對應的下次按鍵事件消息,判斷所述下次按鍵事件消息與所述當前按鍵事件消息之間的時間間隔是否大於所述預設的延遲時間,若所述時間間隔大於所述預設的延遲時間,則根據所述當前按鍵事件消息對所述導航欄進行切換;如此,接收到當前按鍵事件消息後,會按照預設的延遲時間將當前按鍵事件消息進行延遲,當用戶繼續按下遙控器切換導航欄目時,接收到下次按鍵事件消息,只有兩次事件消息的時間間隔大於預設的延遲時間後,才會將當前按鍵事件消息分發至處理頁面進行處理,在不大於預設的延遲時間時,則將當前按鍵事件消息刪除,根據下次按鍵事件消息對所述導航欄進行切換,這樣利用消息延遲機制來優化數據請求,降低了數據請求的刷新次數,進而提高了用戶的操作效率。

以上所述,僅為本發明的較佳實施例而已,並非用於限定本發明的保護範圍,凡在本發明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發明的保護範圍之內。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀