2011-07-01 8 views
0

ActivityManager을 사용하여 패키지가 실행되고 실행될 때 프로그래밍 방식으로 모니터링 한 다음 프로그래밍 방식으로이를 죽이는 가장 효율적인 방법을 찾으려고합니다. 나는 2.2와 함께 manager.killBackgroundProcesses(processName)과 2.2를 사용하는 요구에 그것을 할 수 있으며, 내 코드는 잘 작동하지만 가능한 경우 백그라운드 서비스 모니터를 등록하고 싶다. 또는 특정 패키지 이름에 대한 의도적 인 시작 모니터의 일종?백그라운드 서비스에서 활동을 모니터링하고 종료하는 모범 사례?

가장 효율적이고 신뢰할 수있는 방법은 무엇입니까?

참고 : 이것은 백그라운드에서 발생하는 악의적 인 목적을위한 것이 아닙니다 ... 내 매니페스트에 <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />을 호출하므로 사용자는 앱의 기능을 정확히 알 수 있습니다.

답변

0

AlarmManager을 사용하여 폴링을 예약하는 것이 가장 좋습니다. 단점은 AlarmManager가 미리 설정된 간격으로 만 폴링한다는 것입니다. 최소 간격은 15 분입니다. 대다수 상황에서이 정도면 충분하다고 생각합니다.

+0

비교적 순식간에 또는 몇 초 이내에 필요합니다. 저는 끊임없이 폴링이 매우 효율적이라고 생각하지 않습니다. – kefs

+0

글쎄요, 폴링 중이거나 패키지 출시 사실을 알리는 방법을 찾아야합니다. 왜 그렇게 빨리 투표해야합니까? 원하지 않는 팽창을 방지하기 위해 앱을 제작하는 경우 이는 반 직관적입니다. 당신이 그것을 죽이자 마자, 안드로이드 시스템이 그것을 다시 시작하기 때문에. 그렇다면 프로그램을 죽이려고하는 대신 시작하는 것을 막아야합니다. –

0

내가 안드로이드 그런 개념이 없다

가능하면 백그라운드 서비스 모니터를 등록하고 싶습니다.

또는 특정 패키지 이름에 대한 의도적 인 시작 모니터입니까?

Android에는 이러한 개념이 없습니다.

나는 비교적 순식간에 또는 몇 초 이내에 필요합니다. 저는 끊임없이 폴링이 매우 효율적이라고 생각하지 않습니다.

그러면 비효율적으로 살아야 할뿐 아니라 앱을 작성하지 않아도됩니다. Android는 작성하려는 앱을 지원하도록 설정되지 않았습니다.