PDA

Ver la Versión Completa : [ CONSULTA ] Cómo obtener app activas


Spockkkk
03/07/11, 15:12:56
Estoy interesado en saber, si es posible, cómo acceder a las aplicaciones que se están ejecutando en el teléfono? Estoy preparando una app, y necesito saber qué aplicaciones están en memoria ejecutándose, todo ésto desde código claro.
Gracias.

kriogeN
03/07/11, 17:12:06
Prueba con esto:

http://developer.android.com/reference/android/app/ActivityManager.html

Hay un método llamado getRunningAppProcesses (http://developer.android.com/reference/android/app/ActivityManager.html#getRunningAppProcesses%28%29) () que creo que sirve para lo que quieres, no pone nada de static así que supongo que tendrás que crear un objeto ActivityManager para poder usarlo.

Por cierto, acojonante el método isUserAMonkey()

Spockkkk
04/07/11, 22:00:48
Muchas gracias, les echaré un vistazo a ambas... Estoy interesado en crear, para aprender, un widget con las aplicaciones activas, para poder moverme entre ellas... Un poco tonto, pero para aprender a usar la sdk, creo que me servirá bien.

Spockkkk
04/07/11, 23:07:47
Otra preguntilla... Soy nuevo con java, y por tanto con android sdk... Y la verdad, he estado mirando la clase ActivityManager, pero no existe un constructor... He oído que se pueden utilizar unos objetos llamados factory, o algo así, que construyen objetos de clases que no sabes cuál es su constructor... Básicamente me he quedado ahí... xD
Gracias

Spockkkk
05/07/11, 00:49:26
Bueno, más o menos he ido solucionando problemas, no tiene constructor, pues es el resultado de una consulta "ActivityManager a = (ActivityManager) this.getSystemService( ACTIVITY_SERVICE );"

Luego obtengo una lista con getRunningAppProcesses(), y lo intento mostrar en un ListView... (Aquí me lío un poco, pero bueno) y con processName muestro esos procesos. ¿Qué os parece?¿Alguna manera de mejorarlo?


package app.task;

import java.util.List;
import android.app.Activity;
import android.app.ActivityManager;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class AppTaskActivity extends Activity {
/** Called when the activity is first created. */
override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ActivityManager a = (ActivityManager) this.getSystemService( ACTIVITY_SERVICE );
List<ActivityManager.RunningAppProcessInfo> lista = a.getRunningAppProcesses();
String lv_arr[]={lista.iterator().next().processName, lista.iterator().next().processName,lista.iterator ().next().processName};
ListView lv1 = (ListView)findViewById(R.id.listView1);
lv1.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , lv_arr));
}
}