ActivityManager 이벤트를 들으십니까?
-
20-09-2019 - |
문제
ActivityManager의 이벤트 (예 : 활동이 시작된시기를들을 수 있습니까? ActivityManager가 방송을 보내나요? 나는 그것이하는 것을 나타내는 것을 찾지 못했습니다.
기본적으로해야 할 일 : 특정 (ThirdParty) 앱이 시작/집중 될 때마다 내 앱이 내 활동 중 하나를 시작하기를 원합니다. 문제는 제 3 자 앱이 실제로 표시되기 전에 발생해야한다는 것입니다.
해결 방법으로 시도한 것 :
- logcat output : 0.8 초마다 logcat (ActivityManager 이벤트 만 표시하도록 필터링) 그러나 이것은 많은 ressources를 먹습니다.
- 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
제휴하지 않습니다 StackOverflow