android 如何判斷當前頁面是否是桌面

2021-06-26 17:19:12 字數 1426 閱讀 9243

最近在自己的專案中需要用到判斷乙個應用是否啟動的功能。為了擴充套件一下知識點,就把題目定成了如果判斷當前顯示是否為桌面。

其實這個過程有三個知識點

1.如何找出正在執行的任務?android系統是支援多工的,找到所有執行的任務是關鍵。

2.如何找出當前正在執行的任務?雖然android是多工的系統,但是同時在前端執行的應用只會有乙個。如何找出來呢?

3.如何找出桌面?因為我們都知道android的桌面是可以定製的。我們怎麼知道使用者啟用的是哪個桌面呢?

帶著這些問題我們開始今天的講解吧。

1. 找出正在執行的任務。正在執行的任務可能是前台的也可能是後台的。我們不管三七二十一,先找出來再說。

**如下:

activitymanager

manager=(

activitymanager

)mcontext

.getsystemservice

(context

.activity_service

);list

<

runningtaskinfo

>

runningtaskinfos

=manager

.getrunningtasks

(integer

.max_value);

2.找出前台執行的任務。我們找出了所有正在執行的任務,那麼前台執行的任務就位於所以任務的最前面。

runningtaskinfo

info

=runningtaskinfos

.get(0

);3. 找出桌面。桌面應用(launcher)的啟動頁面包含了以下條件:、

1.action為android.intent.action.main,

2.category包含android.intent.category.home

雖然說android可以定製桌面,但是我們顯示桌面的時候,總是顯示眾多桌面中的乙個。所以我判斷的邏輯為:

找出所有的桌面,如果有乙個桌面應用在前台執行,則表示桌面顯示中。

private

list

<

string

>

gethomes

()return

packages;}

最後我們來看看完整的**:

public

boolean

ishome

()private

list

<

string

>

gethomes

()return

packages;}

Vue如何動態重新整理當前頁面

1.場景 在處理列表時,常常有刪除一條資料或者新增資料之後需要重新重新整理當前頁面的需求。2.遇到的問題 1.用vue router重新路由到當前頁面,頁面是不進行重新整理的3.解決方法 provide inject 組合 作用 允許乙個祖先元件向其所有子孫後代注入乙個依賴,不論元件層次有多深,並在...

vue專案如何重新整理當前頁面

1.場景 在處理列表時,常常有刪除一條資料或者新增資料之後需要重新重新整理當前頁面的需求。2.遇到的問題 1.用vue router重新路由到當前頁面,頁面是不進行重新整理的 3.解決方法 provide inject 組合 作用 允許乙個祖先元件向其所有子孫後代注入乙個依賴,不論元件層次有多深,並...

如何查詢當前頁面元素 DataList

以下是乙個比較特殊的情況,看下圖 解決思路 1.首先確定當前點選button,是哪乙個button 2.獲取當前點選button的物件 即可進行相關的操作 遇到問題 因為gridview,button都是套在datalist中的,所以你無法手動確定當前button的位置?解決方法 首先在master...