[英]How to check all the running services in android?
我想訪問並查看后台運行了多少服務和哪些服務。
我想要與我們可以訪問的完全相同的功能
菜單->設置->應用程序->運行服務
在我們的 android 基礎手機或標簽上。 誰能告訴我在 android 源代碼中使用了哪些函數或類來提供此功能。
如果有什么方法可以訪問我上面提到的后台運行服務的內置列表,那么請告訴我,因為使用內置服務對我來說更好,而不是創建全新的服務。
檢查此鏈接:
如何在 6.0 Marshmallow 及更高版本中訪問 Android 的運行應用程序列表
在哪里可以找到在 Android 6.0 中運行的服務 就像我之前提到的,在
Android 5.x 及更低版本,您可以通過跳轉到設置 > 應用程序 > 運行來查看發生了什么。 這顯示了正在運行的進程和服務,以及系統和應用程序使用了多少內存 (RAM),以及還有多少可用。
要在 Marshmallow 中找到相同的菜單,您首先需要啟用開發人員選項。 通過進入“設置”,然后“關於手機”來執行此操作。
在那里,找到“軟件信息”部分——這在某些手機(三星、LG)上是一個單獨的條目,但在其他手機(如 Nexus 設備)上則不是。 您正在尋找內部版本號,因此在找到它之前您可能需要四處看看。 這
取自三星 Galaxy S7 Edge,最后一個取自 Nexus 6P。 如您所見,構建位於兩個不同的位置。
找到后,點擊它七次。 您會看到一個 Toast 通知,讓您知道在“您成為開發人員”之前還剩下多少。 點擊七次后,將在主設置菜單中的關於手機上方解鎖一個新菜單。
返回設置,進入開發者選項。 您應該會在此菜單的下方看到“運行服務”——這就是您要查找的內容。 一旦您點擊“正在運行的服務”,您應該會看到一個熟悉的屏幕——它與 Lollipop 的屏幕完全相同。 只是在不同的地方。
這是一個完整的答案。
第 1 步。首先你需要聲明和初始化幾個變量:-
private static final String APP_DETAILS_PACKAGE_NAME = “com.android.settings”; // Here you need to define the package name
private static final String SCREEN_CLASS_NAME = “com.android.settings.RunningServices”; // Here you need to define the class name but NOTICE!! you need to define its full name including package name.
步驟 2. 實例化一個意圖
Intent intent = new Intent();
步驟 3. 將操作設置為 ACTION_VIEW
intent.setAction(Intent.ACTION_VIEW);
步驟 3. 在意圖中設置類名,因為我們知道包可以有多個活動。 所以 Intent 需要一些東西來匹配包名中的 Activity。
intent.setClassName(APP_DETAILS_PACKAGE_NAME, SCREEN_CLASS_NAME); //Here you need to set package name as well as class name so it could refer to the Package and IntentFilter of the given Activity.
步驟 4. 啟動活動
context.startActivity(intent); // As soon as this line will be executed Running Service screen will be displayed as a foreground activity.
在上面的示例中,如果您想訪問一些不同的屏幕,請根據需要更改 APP_DETAILS_PACKAGE_NAME 和 SCREEN_CLASS_NAME。
我真的不知道這種方法是否被記錄在案,但它對我來說很有魅力。
簡單的步驟
據推測,它正在ActivityManager
上調用getRunningServices()
。 沒有直接進入該屏幕的記錄Intent
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.