2011-08-18 8 views
2

Android 응용 프로그램 상태에 대한 질문이 있습니다. 나는 그 응용이 살아 있거나 죽었는지, 또는 배경에 있는지를 확인할 수 있는지 알고 싶다. 방송 수신기의 응용 프로그램 상태에 따라 결정해야합니다. 사전에Android Check 응용 프로그램 상태

감사합니다 .. 안드로이드 내에서

+1

"결정"에 대한 세부 정보를 제공 할 수 있다면 아마도 도움이 될 것입니다. – CommonsWare

+0

단순히 응용 프로그램이 살아 있다면 시작 프로세스를 단계별로 실행하고 대상 작업을 건너 뛰고 싶습니다. 모두 내가 응용 프로그램 상태를 확인하는 방법을 알고 싶습니다. – barisatbas

답변

1

기본적으로 방송을 수신하면 응용 프로그램을 실행할 수 있습니다. 먼저 신청 절차가 시작되지 않으면 방송을 수신 할 수 없기 때문입니다. 그리고 브로드 캐스트가 전송 될 때 액티비티와 같은 활성 구성 요소가없는 경우이 브로드 캐스트를 처리하기위한 용도로만 애플리케이션 프로세스가 시작됩니다.

다른 부분은 현재 활동이 현재 활성화되어 있거나 가시적인지 여부를 감지합니다. API 호출을 보지 못했습니다. 카운터를 싱글 톤으로 수동으로 유지하는 것과 같은 몇 가지 해결 방법이있을 수 있지만, 내가 아는 한 직접 지원하지는 않습니다. 나는 틀릴 지 모르지만.

+1

특정 활동의 상태를 모른 채 알림을 표시할지 여부를 결정할 수 없습니다. 예를 들어,'ChatActivity'가 실행 중이고, 알림이 허용되지 않는다면, 실행되고 있지 않다면, 사용자에게 알려주는 알림을 보여줘야합니다. 이 작업은'BroadcastReceiver'에서 이루어져야합니다. 이것에 대한 좋은 접근 방법이 있습니까? 감사! – gone

0

, 다양한 상태로 '변화'를 추적 할 수있는 표준 방법입니다. 이 here에 대한 자세한 내용을 볼 수 있습니다. 특정 라이프 사이클 관련 메소드에서 적절한 것으로 간주되는 특정 조치를 수행 할 수 있습니다.

+0

좋은 답변이 아니므로 액티비티 라이프 사이클을 추적 할 필요가 없습니다. 애플리케이션 상태를 확인해야합니다 : 살아 있거나 죽었거나 표시되거나 보이지 않습니다. 또는 응용 프로그램에 적어도 하나의 활동이 있습니까? – barisatbas

2

"시작 프로세스"에서로드 한 데이터가 있는지 확인하여 "응용 프로그램"이 "활성"상태인지 확인합니다. 그럴 경우 사용하십시오. 그렇지 않으면 "시작 프로세스"를 실행하십시오.

+0

ok 이것은 해결책이지만 Android가 API 레벨을 지원하는지 여부가 궁금합니다. 감사. – barisatbas

+2

@ baris3437 : "API 레벨 지원"이 필요하지 않습니다. 보통 Java로, "시작 프로세스"에서 캐싱 한 데이터를 보유하는 정적 데이터 멤버가 null인지 아닌지를 확인합니다. – CommonsWare

관련 문제