Activities 스 택 꼭대기 의 Activity 이름 을 어떻게 얻 습 니까?
쉽게 말 하면 이전의 Activity 로 돌아 가 는 본질은 현재 의 Activity 를 삭제 하고 이전의 Activity 를 Activities 스 택 의 스 택 지붕 으로 만 드 는 것 이다.이렇게 말 할 수 있 습 니 다. 현재 실행 중인 활동 의 Activity 는 Activities 스 택 꼭대기 에 있 는 Activity 입 니 다.
실제 개발 에서 우 리 는 가끔 현재 Activities 스 택 꼭대기 에 있 는 Activity 를 얻어 서 일부 기능 을 실현 해 야 한다. 예 를 들 어 Debug 를 할 때 Activity 가 돌아 오 는 상태 가 정확 한 지 모니터링 해 야 한다.예 를 들 어 필 자 는 개발 과정 에서 개발 체제 의 원인 으로 인해 특정한 Activity UI 에서 홈 버튼 을 누 른 다음 에 다시 응용 에 들 어 갈 때 상태 가 잘못 되 었 다.필 자 는 처음부터 끝까지 원인 을 확인 하지 못 하고 다시 응용 프로그램 에 들 어 갈 때 현재 Activities 스 택 의 스 택 꼭대기 에 있 는 Activity 를 감시 하여 개발 체제 로 인해 Activities 스 택 에 오류 가 발생 한 것 으로 결론 을 내 렸 다. 즉, 스 택 꼭대기 Activity 오류 로 인해 홈 에서 다시 응용 프로그램 에 들 어간 후에 Android resume 에 잘못된 Activity 가 생 겼 다.
이상 은 한 무더기 의 수 다 를 떨 었 으 니 독자 가 흥미 가 없다 면 뛰 어 넘 을 수 있다.현재 스 택 꼭대기 에 있 는 Activity 를 어떻게 얻 는 지 소개 하 겠 습 니 다.
전체적인 절 차 는:
구체 적 인 독 자 는 아래 의 코드 와 안 드 로 이 드 도움말 문 서 를 참조 할 수 있다.
코드 예:
String getTopActivity(Activity context)
{
ActivityManager manager = (ActivityManager)context.getSystemService(ACTIVITY_SERVICE) ;
List<RunningTaskInfo> runningTaskInfos = manager.getRunningTasks(1) ;
if(runningTaskInfos != null)
return (runningTaskInfos.get(0).topActivity).toString() ;
else
return null ;
}
AndroidManifest.xml :
<uses-permission android:name = “android.permission.GET_TASKS”/>
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
RunningTaskInfo info = manager.getRunningTasks(1).get(0);
String shortClassName = info.topActivity.getShortClassName(); //
String className = info.topActivity.getClassName(); //
String packageName = info.topActivity.getPackageName(); //
Author : Aoyousatuo Zhao
http://blog.sina.com.cn/aoyousatuo
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.