編輯:關於Android編程
Android的 - 以編程方式找到所有應用程序中所有的的窗口?
是否有可能以編程方式枚舉所有當前app的窗口
對話框,例如都將在新窗口中打開,獨立於主activity窗口。我可以通過Dialog.getWindow(找到它們),但我不知道我怎麼會用一個內置的組件做到這一點,如在活動菜單彈出。
有沒有什麼辦法,從應用程序中,上下文,或者窗口管理器,還是其他什麼東西,枚舉與我的應用程序關聯的所有窗口?
我可以在adb dumpsys窗口看到我所有的應用程序的窗口,但我正在尋找一種方法來在我的應用程序做到這一點,無需root。
Android的Android的視圖
最佳答案:
我找到一個方法通過反射 WindowManagerGlobal.,至少到目前為止他在android-18版本中工作的很好.....
private void logRootViews() { try { Class wmgClass = Class.forName(android.view.WindowManagerGlobal); Object wmgInstnace = wmgClass.getMethod(getInstance).invoke(null, (Object[])null); Method getViewRootNames = wmgClass.getMethod(getViewRootNames); Method getRootView = wmgClass.getMethod(getRootView, String.class); String[] rootViewNames = (String[])getViewRootNames.invoke(wmgInstnace, (Object[])null); for(String viewName : rootViewNames) { View rootView = (View)getRootView.invoke(wmgInstnace, viewName); Log.i(TAG, Found root view: + viewName + : + rootView); } } catch (Exception e) { e.printStackTrace(); } }
概述:利用自定義View的onDraw()方法,可以繪制很多種圖形,進度框只是其中之一。Demo這是一個模擬下載的demo。自中央逐漸充滿型圓形進度框demo1publi
MainActivity:package com.ruru.dialogproject; import android.app.Activity; import andr
由上篇Android Permission權限機制引子,我們知道Android 通過在每台設備上實施了基於權限的安全策略來處理安全問題,采用權限來限制安裝應用程序的能力。
本案例在於實現文件的多線程斷點下載,即文件在下載一部分中斷後,可繼續接著已有進度下載,並通過進度條顯示進度。也就是說在文件開始下載的同時,自動創建每個線程的下載進度的本地