2011-04-02 2 views
9

Я хочу получить доступ и посмотреть, сколько и какие службы работают в фоновом режиме.Как проверить все запущенные службы в Android?

Я хочу точно такую ​​же функциональность, как мы можем получить доступ с помощью

Меню-> Setting-> Приложения-> Выполняемые услуги

на наших андроид базовых мобильных телефонов или вкладок. Может кто-нибудь сказать мне, какая функция или классы были использованы в исходном коде Android, чтобы обеспечить эту функциональность.

И если есть какой-либо способ, с помощью которого я могу получить доступ к этому встроенному списку фоновых запущенных сервисов, о которых я упомянул выше, пожалуйста, скажите мне, потому что для меня лучше использовать встроенную единицу вместо создания совершенно новый.

+0

http://varundroid.blog.com/2011/05/22/androidscreens/ Я не знаю, что это решение является правильным или неправильным, но она отлично работает для меня. – Varundroid

ответ

5

Вот полный ответ.

Шаг 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. Instantiate намерению

Intent intent = new Intent(); 

Шаг 3. Установка действий по ACTION_VIEW

intent.setAction(Intent.ACTION_VIEW); 

Шаг 3. Задайте имя класса внутри намерения, поскольку мы знаем, что пакет может иметь более одного действия. Таким образом, Intent нуждается в чем-то, чтобы соответствовать активности внутри имени пакета.

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 в соответствии с вашими потребностями.

Я действительно не знаю, что этот метод документирован или нет, но он работает как очарование для меня.

+0

Этот метод работает для всех версий Android или только ниже 2.2 (Froyo), если да, знаете ли вы способ реализовать это для 2.3+? Благодарю. – user959631

+0

Когда я тестировал последний, мое приложение работало нормально, поэтому я думаю, ДА. – Varundroid

+0

Ahh, ладно, спасибо, как бы я мог отображать текущие процессы/сервисы моего приложения, а не все сервисы? Есть идеи? Можно ли это сделать? – user959631

1

Предположительно, он звонит getRunningServices() по телефону ActivityManager. Нет документального документа Intent, чтобы перейти прямо к этому экрану.

+0

Я только что проверил через Интернет, что на рынке есть несколько приложений, таких как «Advance Task Manager», которые получают доступ к этому экрану одним щелчком мыши, поэтому они делают вызов той же функции, что и андроид, когда мы нажимаем «Running Services». – Varundroid

+3

@ Varundroid: Это хорошо, но оно не задокументировано или не поддерживается, и поэтому вы (и они) не должны его использовать. Самое близкое, которое документировано и поддерживается, - 'ACTION_MANAGE_ALL_APPLICATIONS_SETTINGS' на' android.provider.Settings'. – CommonsWare

0

Вы проверяете в устройстве

1- Перейти к мобильной установки 2 Нажмите на Диспетчер приложений 3 Проведите пальцем влево, чтобы увидеть запущенные приложения

Это место, где вы найдете запущенное приложение вдоль запущенных служб, как показано на прилагаемом изображении:

enter image description here

+1

Aleem, я имел в виду программно. Спасибо, что ответили на 6-летний вопрос. Ура! – Varundroid

2

Check Это Ссылка:

How to Access Android’s List of Running Apps in 6.0 Marshmallow and Above


Где найти Запуск службы в Android 6.0 Как я уже отмечал ранее,

Android 5.x и ниже, вы можете увидеть, что было переход на Настройки> Приложения> Запуск. Это показывает как запущенные процессы, так и сервисы, а также то, сколько памяти (ОЗУ) используется Системой и Приложения, а также сколько еще доступно.


Чтобы найти такое же меню в Зефир, вам сначала необходимо включить Параметры разработчика. Сделайте это, выбрав «Настройки», затем «О телефоне».


Там можно найти информацию о разделе Software-это будет отдельный вход на некоторых телефонах (Samsung, LG), но не на других, как устройства Nexus . Вы ищете номер сборки, поэтому вам, возможно, придется немного совать , прежде чем вы его найдете. first two images below были взяты от Samsung Galaxy S7 Edge, а последний из Nexus 6P. Как вы можете видеть, сборка находится в двух разных местах.



Когда вы нашли его, нажмите на него семь раз. Вы увидите уведомление тоста , дающее вам знать, сколько осталось до тех пор, пока вы не станете разработчиком ». После того, как он был использован семь раз, новое меню будет разблокировано чуть выше О телефоне в главном меню« Настройки ».


Назад в настройках, глава в Параметры разработчика. Вы должны увидеть «Запуск услуг» немного по этому меню - вот что вы ищете. После того, как вы нажмете «Запуск сервисов», вам должен быть представлен знакомый экран - он точно такой же, как у Lollipop.Просто в разных местах.


+0

Хотя эта ссылка может ответить на вопрос, лучше включить основные части ответа здесь и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. - [Из обзора] (/ review/low-quality-posts/17598436) – EJoshuaS

Смежные вопросы