用過ActivityManager的童鞋估計都知道,可以從ActivityManager裏面可以獲取到當前運行的所有任務,所有進程和所有服務,這是任務管理器的核心。
那麼,從裏面我們可以發掘點什麼出來嗎?
仔細看getRunningTasks的文檔,裏面說獲取的是系統中"running"的所有task,"running"狀態包括已經被系統凍結的task。而且返回的這個列表是按照順序排列的,也就是說第一個肯定比第二個後運行。
getRunningTasks有個整型參數,表示返回列表的最大個數。那麼,我們如果把1作爲參數給進去,那麼他返回的task就是當前運行的那個task,然後從task中獲取到最頂層的activity,這個activity就是當前顯示給用戶的那個activity了。
ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE); ComponentName cn = am.getRunningTasks(1).get(0).topActivity; Log.d("", "pkg:"+cn.getPackageName()); Log.d("", "cls:"+cn.getClassName());
至於這個能做什麼,嘿嘿,我相信你知道的。