나는 안드로이드를 처음 사용하고 있습니다. 내 응용 프로그램에서, 나는 (장치에 설치된) 다른 응용 프로그램이 (포 그라운드에서) 사용 된 시간을 추적하려고합니다.안드로이드 애플리케이션의 소요 시간 측정
가능합니까? 그렇다면 어떻게?
미리 감사드립니다.
나는 안드로이드를 처음 사용하고 있습니다. 내 응용 프로그램에서, 나는 (장치에 설치된) 다른 응용 프로그램이 (포 그라운드에서) 사용 된 시간을 추적하려고합니다.안드로이드 애플리케이션의 소요 시간 측정
가능합니까? 그렇다면 어떻게?
미리 감사드립니다.
백그라운드 서비스를 사용하고 어떤 앱이 포어 그라운드에 있는지 지속적으로 검색하여이를 수행하는 유일한 방법이라고 생각합니다 (ActivityManager를 사용하여 가능함).
당신은 전경 감지 할 수/배경 응용 프로그램 ActivityManager.getRunningAppProcesses()
을 함께 :
우선에 비용이 많이 드는, 즉 포 그라운드에서 실행중인 응용 프로그램을 무엇 여기에 알려질 필요가 있어요 요구. Determining foreground/background processes :
그래서, 당신은 아마뿐만 아니라이 문제를 확인하실 수 있습니다처럼 ::
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();
보일 것입니다.
는 당연한를 실행하는 과정에서 소요되는 시간을 측정하려면이 방법을 사용할 수 있습니다 :getElapsedCpuTime()
이 article를 참조하십시오.
답변 해 주셔서 감사합니다. 나는 그것을 시도 할 것이다! – Unnati
[this] (http://stackoverflow.com/questions/6064137/can-an-android-application-know-when-another-android-application-is-running) 링크가 도움이되는지 확인하십시오. – Hemanth
단어를 클릭하십시오 ... 하이퍼 링크입니다 :) – Hemanth