Member 11505839 Ответов: 2

Как показать процессы, запущенные в android программно?


Я хочу показать список запущенных процессов с помощью программы android.Но он ничего не показывает.Что же делать?? Код приведен ниже:

MainActivity.java:

пакет com.sysinfo.procinfo;

импорт java.util.List;

импорт android.app.Activity;
импорт android.app.ActivityManager;
импорт android.app.ActivityManager.RunningAppProcessInfo;
импорт android.os.Bundle;
импорт android.widget.элемент управления ListView;
импорт android.widget.Тост;

/**
* Начальная точка приложения. Этот класс покажет список запущенных в данный момент программ
* процесс.
*

* @версия 1.0 29-01-2015
*
*/
public class MainActivity расширяет активность {

private ListView mProcessListView = null;

@Ручная коррекция
protected void onCreate(Bundle savedInstanceState) {
супер.метод onCreate(savedInstanceState);

setContentView(R. layout.activity_main);

initViews();

loadProcessInfo();
}

частные пустые initViews() {

mProcessListView = (элемент управления ListView) findViewById, чтобы найти(ИД Р..processListView);
}

/**
* Получить список запущенных в данный момент процессов.
*/
частный недействительными loadProcessInfo() {

ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
List<runningappprocessinfo> runningProcesses = manager
.getRunningAppProcesses();

if (runningProcesses != null && runningProcesses.size() > 0) {
mProcessListView
.setAdapter(new ListAdapter(this, runningProcesses));
} еще {
Toast.makeText(getApplicationContext(),
"Запущенный процесс не найден", тост.LENGTH_LONG).показать();
}
}
}

ListAdapter.java

пакет com.sysinfo.procinfo;

импорт java.util.List;

импорт android.app.ActivityManager.RunningAppProcessInfo;
импорт android.content.Контекст;
импорт android.view.LayoutInflater;
импорт android.view.View;
импорт android.view.ViewGroup;
импорт android.widget.Адаптер массива;
импорт android.widget.TextView;

/**
* Адаптер для обработки данных в списке.

* @версия 1.0 29-01-2015
*
*/
открытый класс ListAdapter расширяет ArrayAdapter<runningappprocessinfo> {

частный контекст mContext = null;
частный список<runningappprocessinfo> mProcessList = null;

public ListAdapter(Context context, List<runningappprocessinfo> значения) {

супер(контекст, Р. макета.list_item_process, ценности);

этот.mContext = контекст;
этот.mProcessList = значения;
}

@Ручная коррекция
getView адаптера публичного представления(положение int, вид convertView, ViewGroup родителя) {

LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(контекст.LAYOUT_INFLATER_SERVICE);

Смотреть rowView = насос.надуть(Р. макета.list_item_process, родитель,
ложный);

Виджет TextView имя_приложения = (виджет TextView) rowView.команду findViewById(Р. ИД.параметр processname);
имя_приложения.помощью setText(mProcessList.вам(должность).параметр processname);

вернуться rowView;
}

}

activity_process_info.xml

<relativelayout xmlns:android="http://schemas.android.com/apk/res/android">
описание:инструментов="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
инструменты:context=".ProcessorInfoActivity" >

<textview>
android:id="@+id/View2"
android:layout_width="wrap_removed"
android:layout_height="wrap_removed"
андроид:layout_alignParentLeft="истинный"
андроид:layout_alignParentTop="истинный"
android:lineSpacingExtra="10dp"
android:text="информация о процессоре."
android:textSize="30dp"
android:textStyle="bold" />

<listview> android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
андроид:layout_alignParentLeft="истинный"
android:layout_below="@+id/View2"
андроид:layout_marginLeft="38dp" &ГТ;


Он компилирует код и при запуске на эмуляторе показывает только заголовок Process Info и остальную часть страницы пустой.Где мой код отсутствует?

Richard MacCutchan

Бесполезно просто сбрасывать свой код (неформатированный) и ожидать, что люди скажут вам, что не так. Пожалуйста, отредактируйте свой вопрос, правильно отформатируйте код с помощью тегов "pre"и объясните, где именно он идет не так и почему.

Member 11505839

@Richard..внес изменения plzz смотрите!

David Crow

Делает ли это getView() метод вызывается? Вам нужно переопределить getCount() в вашем списке адаптер?

2 Ответов

Рейтинг:
2

GaneshRfromSpace

Цитата:
Android 5.0+ убил getRunningTasks(int) и getRunningAppProcesses(). Оба эти метода теперь устарели и возвращают только процесс приложения вызывающего объекта.

Android 5.0 представила UsageStatsManager, который обеспечивает доступ к истории использования устройства и статистике. Этот API требует разрешения android.permission.PACKAGE_USAGE_STATS-это разрешение системного уровня, которое не будет предоставляться сторонним приложениям. Однако объявление разрешения подразумевает намерение использовать API, и пользователь устройства может предоставить разрешение через приложение настроек.


Я нашел эту библиотеку, которая может поддерживать устройства android для версий 6 и ниже.

GitHub - jaredrummler/AndroidProcesses: устарел[^]

Посмотрим, поможет ли это.
Пожалуйста, поделитесь, если вы найдете какие-либо другие упрощенные решения.


Рейтинг:
1

Awesome Sohel

http://androidbite.blogspot.in/2013/07/android-display-running-application.html[^]



Смотрите эту ссылку


Member 11505839

Большое спасибо..постараюсь и дам вам знать!!