Jestem nowy na Androida. W mojej aplikacji chcę śledzić, ile czasu są używane inne aplikacje (zainstalowane na urządzeniu) (na pierwszym planie).Mierzony czas na aplikacje na Androida
Czy to możliwe? Jeśli tak, to w jaki sposób?
Z góry dziękuję!
Jestem nowy na Androida. W mojej aplikacji chcę śledzić, ile czasu są używane inne aplikacje (zainstalowane na urządzeniu) (na pierwszym planie).Mierzony czas na aplikacje na Androida
Czy to możliwe? Jeśli tak, to w jaki sposób?
Z góry dziękuję!
Myślę, że jedynym sposobem, aby to zrobić, jest skorzystanie z usługi w tle i ciągłe wyszukiwanie, która aplikacja jest na pierwszym planie (jest to możliwe za pomocą ActivityManager).
Ale to rozwiązanie jest kosztowne akumulator
Pierwszą rzeczą, która jest wymagana, aby być znany jest tu jakie są aplikacje, które są uruchomione na pierwszym planie:
można wykryć obecnie planie/aplikacji w tle z ActivityManager.getRunningAppProcesses()
połączenie.
Tak, będzie to wyglądać mniej więcej tak ::
class findForeGroundProcesses extends AsyncTask<Context, Void, Boolean> {
@Override
protected Boolean doInBackground(Context... params) {
final Context context = params[0].getApplicationContext();
return isAppOnForeground(context);
}
private boolean isAppOnForeground(Context context) {
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
if (appProcesses == null) {
return false;
}
final String packageName = context.getPackageName();
for (RunningAppProcessInfo appProcess : appProcesses) {
if (appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND && appProcess.processName.equals(packageName)) {
return true;
}
}
return false;
}
}
// Now you call this like:
boolean foreground = new findForeGroundProcesses().execute(context).get();
Prawdopodobnie można to sprawdzić także: Determining foreground/background processes.
Do pomiaru czasu potrzebnego do uruchomienia procesu due Oczywiście, można użyć tej metody:
getElapsedCpuTime()
Patrz tej article.
Dzięki za odpowiedź. Dam temu szansę! – Unnati
Sprawdź, czy link [this] (http://stackoverflow.com/questions/6064137/can-an-android-application-know-when-another-android-application-is-running) może Ci pomóc. – Hemanth
kliknij słowo to ... to hiperłącze :) – Hemanth