문제

ActivityManager의 이벤트 (예 : 활동이 시작된시기를들을 수 있습니까? ActivityManager가 방송을 보내나요? 나는 그것이하는 것을 나타내는 것을 찾지 못했습니다.

기본적으로해야 할 일 : 특정 (ThirdParty) 앱이 시작/집중 될 때마다 내 앱이 내 활동 중 하나를 시작하기를 원합니다. 문제는 제 3 자 앱이 실제로 표시되기 전에 발생해야한다는 것입니다.

해결 방법으로 시도한 것 :

  1. logcat output : 0.8 초마다 logcat (ActivityManager 이벤트 만 표시하도록 필터링) 그러나 이것은 많은 ressources를 먹습니다.
  2. GetRunningtasks : 활동이 실행 중이지만 현재 초점이 맞지 않기 때문에 전화를 많이 느리게하고 안전하지 않습니다.

어떤 아이디어?

도움이 되었습니까?

해결책

나는 실제로 Glabal System State를 처리하는 다른 유산 방법이 없다고 생각합니다.

 (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);

ActivityManager.getRecentTasks () - 현재 실행중인 작업 목록을 반환하며, 가장 최근에는 첫 번째 및 오래된 작업이 순서대로 진행됩니다.

자세한 내용은 확인하십시오 문서

아마도 Android는 Linux이지만 시스템 도구를 실행할 수 있습니다.

Runtime.getRuntime().exec("ps -aux | grep smth")

그러나 나는 특정 Java 응용 프로그램을 감지하기가 어려울 것이라고 생각합니다.

다른 팁

발사 모드를 사용하여 최상위로 시작할 활동을 결정할 수 있다고 생각합니다. 질문을 확인하십시오 : Android Singletask 또는 Singleinstance 런치 모드?. 어쩌면 그것은 당신을 도울 것입니다.

Android 소스를 살펴 보았지만 이벤트가 방송되지 않은 것 같습니다.

https://android.googlesource.com/platform/providers/applicationsprovider

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top