2012-01-25 4 views
0

저는 android를 처음 사용합니다.현재 어떤 활동이 열려 있는지 어떻게 알 수 있습니까?

하나의 앱을 개발 중입니다.

내 응용 프로그램이 시작될 때이를 바탕으로 배경 서비스가 시작됩니다.

사용자가 새로운 활동을 시작할 때 배경을 실행하고 사용자에게 알려줍니다.

예를 들어 사용자가 카메라를 열면 연락처가 백그라운드 서비스를 통해 활성화 될 때마다 이 나타납니다.

아무도 해결책이 있다면

미리 감사드립니다.

+0

http://stackoverflow.com/questions/8756938/how-to-know-activity-has-been-finished이 –

+0

@kiran는 프로젝트 swiper 카드를 가지고나요? –

+0

다음 스레드에서 llok을 가지고 : http://stackoverflow.com/questions/8876885/how-to-know-which-package-is-launching/8878706#8878706 – bindal

답변

2

다음 단계를 사용하여이 시나리오를 달성 할 수 있습니다. 이것은 해결책에 대한 내 견해입니다.

  • 작업 이름에 setter()/getter() 메소드를 사용하십시오.

  • 액티비티를 변경할 때마다 세트를 사용하여 해당 액티비티 이름을 설정할 수 있습니다.

  • 지금 getter() 메소드를 사용하면 현재 활성 상태 인 활동을 볼 수 있습니다.

+0

키란 야, 대답하는 경우를 수용하십시오 그것은 다른 사람들에게 유용 할 수 있도록 당신에게 유용했습니다. – Lucifer

+0

StackOverflow는 광고 사이트가 아닙니다. 그러니 당신의 대답을 광고하는 것을 그만두고 질문자가 그가 원하는 것을하고 그 대답이 가장 유용하다고 대답을 선택하게하십시오. –

+0

질문을 올바르게 읽지 않은 것으로 보입니다. 그는 다른 앱 중에서 포 그라운드에있는 것을 원합니다 ( 예를 들어 사용자가 카메라, 연락처를 여는 경우). –

2

이 코드는 프로세스에로드 된 모든 패키지를 반환합니다.

관련 앱을 시작한 후 결과를 확인하고 변경합니다.

private String[] AppForground() { 

      ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); 
      List<RunningAppProcessInfo> l = mActivityManager 
        .getRunningAppProcesses(); 
      Iterator<RunningAppProcessInfo> i = l.iterator(); 
      while (i.hasNext()) { 
       RunningAppProcessInfo info = i.next(); 
       if (info.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) { 
        return info.pkgList; 
       } 
      } 

      return null; 
} 
} 
관련 문제