Sono uno sviluppatore Android e desidero scrivere una dichiarazione if
nella mia applicazione. In questa dichiarazione voglio verificare se il browser predefinito (browser nel sistema operativo Android) è in esecuzione. Come posso farlo a livello di programmazione?Come posso verificare se un'app funziona su Android?
54
A
risposta
102
Aggiungere la classe Helper di seguito:
public class Helper {
public static boolean isAppRunning(final Context context, final String packageName) {
final ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
final List<ActivityManager.RunningAppProcessInfo> procInfos = activityManager.getRunningAppProcesses();
if (procInfos != null)
{
for (final ActivityManager.RunningAppProcessInfo processInfo : procInfos) {
if (processInfo.processName.equals(packageName)) {
return true;
}
}
}
return false;
}
}
Ora è possibile controllare dal codice qui sotto se la vostra applicazione desiderata non è stata avviata:
if (Helper.isAppRunning(YourActivity.this, "com.your.desired.app")) {
// App is running
} else {
// App is not running
}
-1
si può controllare con il seguente metodo
public static boolean isRunning(Context ctx) {
ActivityManager activityManager = (ActivityManager) ctx.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> tasks = activityManager.getRunningTasks(Integer.MAX_VALUE);
for (ActivityManager.RunningTaskInfo task : tasks) {
if (ctx.getPackageName().equalsIgnoreCase(task.baseActivity.getPackageName()))
return true;
}
return false;
}
+0
funziona al di sopra di kitkat? se sì, si prega di fornire il codice ... grazie –
Bel pezzo di codice, grazie! –
Thx, ma come vedo ogni volta com.android.browser è in esecuzione. Quando è in primo piano, generalmente è in terza o quarta posizione della lista, altrimenti è ancora nella lista. Quindi questa affermazione ogni volta restituisce vero. Come posso risolvere questo problema? Solo quando il processo recente è browser, deve scrivere "il browser è in esecuzione". – sjor
un campo 'lru' in RunningAppProcessInfo fornirà le informazioni relative del runtime dell'applicazione per ulteriori riferimenti controllare la pagina doc - http://developer.android.com/reference/android/app/ActivityManager.RunningAppProcessInfo.html – dhaval