¿Cómo encontrar las aplicaciones en ejecución en programación en android?

Soy muy nuevo en Android. Estoy trabajando en la aplicación que debe obtener la información sobre las aplicaciones que se ejecutan actualmente en primer plano.

Significa que si el usuario lanza alguna aplicación, mi aplicación debería capturar la información de la aplicación iniciada, para cuando mi aplicación no interrumpa la aplicación iniciada.

Ejemplo: Si el usuario inicia la aplicación del navegador, mi aplicación debe imprimir la información de la aplicación del navegador en el registro.

¿Cómo puedo hacer esto?

ActivityManager activity_manager = (ActivityManager) context .getSystemService(Activity.ACTIVITY_SERVICE); 

ActivityManager tiene el método getRunningTasks(int) . ActivityManager parece ser la solución que está buscando.

 final ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); final List<RunningTaskInfo> recentTasks = activityManager.getRunningTasks(Integer.MAX_VALUE); for (int i = 0; i < recentTasks.size(); i++) { Log.d("Executed app", "Application executed : " +recentTasks.get(i).baseActivity.toShortString()+ "\t\t ID: "+recentTasks.get(i).id+""); } 

También, eche un vistazo al siguiente subproceso: Ver tarea reciente de Android ejecutada por el usuario

Puedes usar algo similar a esto:

 ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); List<RunningTaskInfo> tasks = activityManager.getRunningTasks(Integer.MAX_VALUE); for (int i = 0; i < tasks.size(); i++) { Log.d("Running task", "Running task: " + tasks.get(i).baseActivity.toShortString() + "\t\t ID: " + tasks.get(i).id); } 

Este código proporcionará el actual logit de acitvity

 Process logcatProc; List <String> progs = new ArrayList <String>(); progs.add("logcat"); progs.add("-v"); progs.add(mFormat.getValue()); if (mBuffer != Buffer.MAIN) { progs.add("-b"); progs.add(mBuffer.getValue()); } progs.add("*:" + mLevel); logcatProc = Runtime.getRuntime() .exec(progs.toArray(new String[0])); mReader = new BufferedReader(new InputStreamReader( logcatProc.getInputStream()), 1024); String line; while (mRunning && (line = mReader.readLine()) != null) { if (!mRunning) { break; } if (line.length() == 0) { continue; } if (mIsFilterPattern) { if (mFilterPattern != null && !mFilterPattern.matcher(line).find()) { continue; } } else { if (mFilter != null && !line.toLowerCase().contains(mFilter.toLowerCase())) { continue; } } synchronized (mLogCache) { mLogCache.add(line); } } 
  • Android: Pasar un servicio a un manejador
  • Cómo llamar a onCreateOptionsMenu desde el código
  • Manejadores de excepciones globales en Java
  • La aplicación para Android no se bloquea, pero no responde con excepciones no detectadas
  • Guardar los datos de acceso (preferencias) android
  • Android: archivo de acceso desde la pantalla de activos \ PDF
  • ¿Por qué está el menú desplegable de desbordamiento encima de la barra de acción?
  • Carga de una biblioteca nativa en una prueba de Android JUnit
  • ¿Por qué tantas clases internas en Android?
  • Dalvik VM vs Sun JVM
  • SQLite de Android que elimina una fila específica de la base de datos
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.