2011-09-02 4 views
1

기본적으로 다른 앱이 시작될 때를 알고 싶습니다. 따라서 앱을 특정 방식으로 조정할 수 있습니다. 예를 들어 사용자가 GMail 앱을 시작하면 내 서비스가이를 감지하고 대응할 수 있습니다.타사 앱의 실행을 인식하는 방법이 있습니까?

나의 현재 아이디어는 각 요소에 대해 클래스에서 getRunningTasks()의 'topActivity'를 확인하는 것입니다. 그러나 그것은 백그라운드에서 지속적으로 점검 할 필요가 있기 때문에 상당히 비싸게 들립니다 (그리고 저는 제 앱의 CPU 사용에 대해 매우 까다 롭습니다).

누군가가 더 좋은 방법을 알고 있다면, 나는 그것을 듣고 싶습니다!

답변

2

applaunch가 브로드 캐스트되지 않기 때문에 BroadcastListener를 의미하는 "좋은 방법"을 수행 할 방법이 없습니다. 유일한 방법은 체크를하는 서비스를 시작하는 것입니다. getRunningTasks() (CPU를 너무 많이로드하지 않기 때문에 어떤 앱이 포 그라운드인지 확인할 수 있습니다. 해당 기술에 관심이 있다면 코드를 검색 할 것입니다)

5-10 초 간격으로 서비스를 확인하십시오. 또한 SCREEN_OFF에서 서비스를 종료하고 SCREEN_ON에서 다시 시작하십시오.

죄송하지만 다른 방법은 없습니다.

+0

기본적으로, 내가 이미 염두에 두었던 것. 어쨌든 고마워요! – Glitch

관련 문제