2013-01-22 6 views
2

Android 기기 용 키오스크 유형 앱을 만들려고합니다. 앱이 항상 실행되도록하고 다시 넘어지면 다시 시작합니다.android에서 실행중인 앱 모니터링

초기 생각은 포어 그라운드에 고정되어있는 서비스를 만들고 (시스템 Handler을 사용하여) 정기적으로 활동 (UI가있는 기본 앱)이 실행 중인지 확인합니다. 특정 응용 프로그램이 실행되지 않거나 경우

Intent intent = new Intent("android.intent.action.MAIN"); 
intent.setComponent(ComponentName.unflattenFromString("com.blah.blah.MyApp")); 
intent.addCategory("android.intent.category.LAUNCHER"); 
startActivity(intent); 

이 볼 수 있나요 : 그것은 실행되지 않을 경우, 서비스 사용 의도를 실행하여 작업을 다시 시작해야합니까? 보너스 인터넷 포인트에 대해 - 앱이 포 그라운드에 있는지 (포 그라운드에서 활동을 유지하기 위해 서비스를 사용하는지) 알 수 있습니까?

답변

1

당신은 현재 응용 프로그램 상단 String packageName= getSystemService(Context.ACTIVITY_SERVICE).getRunningTasks(1).get(0)).topActivity.getPackageName();

실행 응용 프로그램에 대한 루프 검사에서 백그라운드 서비스에서이 코드를 실행 (응용 프로그램) 패키지 이름을 확인할 수 있습니다.

+1

감사합니다. 다른 사람들은이 해결책을 찾기 위해 @ sachy의 코드를 다음과 같이 바꿔야합니다 : 'String packageName = ((ActivityManager) getSystemService (Context.ACTIVITY_SERVICE)) .getRunningTasks (1) .get (0) .topActivity.getPackageName ; ' 또한 필요합니다 : '' – Jono