내 응용 프로그램에서 A 주요 활동입니다. 그것의 A, B, C, D 등과 같은 무언가를 탐색 구글 클라우드 푸시 알림을 구현했습니다. 푸시 알림을 받으면 알림이 생성되고 클릭하면 활동 X로 이동합니다. 스택이 비어 있지 않으면 문제가 없습니다. 스택이 비어 있고 푸시 알림에서 실행 된 액티비티 x이 시작 활동으로 작동합니다. 다시 말해서 홈 버튼을 길게 눌러 앱이 A 액티비티 대신 X 액티비티 (알림에서 실행 된 액티비티)로 이동하면 다시 스택이 비어있을 때를 의미합니다. 도와주세요. 것활동 스택이 비어있을 때 알림에서 실행 된 활동 기본 활동으로 사용
0
A
답변
2
가장 간단한 것은 이동 활동이 하려고 할 때 활동 수명주기의 일환으로 불려 보호 무효 onUserLeaveHint()
에 대해, 문서 도구에서
을
onUserLeaveHint()
을 무시하고 활동을 마무리하는 것입니다 사용자 선택의 결과로 백그라운드로. 예를 들어, 사용자가 홈 키를 누르면 onUserLeaveHint()가 호출되지만 전화가 걸려 올 때 통화 상태가 이 될 때이 자동으로 포어 그라운드로 이동하면 onUserLeaveHint()는 활동이 중단되었습니다. 이 메서드가 호출 된 경우 이 메서드는 활동의 onPause() 콜백 직전에 호출됩니다.이 콜백 및 onUserInteraction()은 상태 표시 줄 알림을 지능적으로 관리하는 활동을 돕기위한 것입니다. 구체적으로, 에 대한 활동은 통지를 취소 할 적절한 시간을 결정하는 데 도움이됩니다.
사이비 코드,
@Override
protected void onUserLeaveHint() {
super.onUserLeaveHint();
finish();
}
또한 더 참조 this answer
를 확인할 수 있습니다.
UPDATE:
HOME 키를 감지하는 또 다른 방법은 ActivityManager에서 Activity를 확인하는 것입니다. HOME 단추를 누르면 BaseActivity가 활동 목록의 두 번째 위치에 유지됩니다. 그래서 당신은
@Override
protected void onUserLeaveHint() {
super.onUserLeaveHint();
Log.e("onUserLeaveHint()", "Yes");
ActivityManager activityManager = (ActivityManager)
getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> recentTasks = activityManager
.getRunningTasks(Integer.MAX_VALUE);
for (int i=0; i<recentTasks.size(); i++) {
if (i == 1 && recentTasks.get(i).baseActivity.toShortString()
.indexOf(getPackageName()) > -1) {
Log.e("Home Pressed", "Yes");
break;
}
}
}
또한, AndroidManifest를 파일에
<uses-permission android:name="android.permission.GET_TASKS"/>
권한을 추가하는 것을 잊지 마세요, 아래 ActivityManager 사용하는 것을 확인할 수 있습니다. 더 자세한 내용은 this blog
에서 찾을 수 있습니다.
관련 문제
- 1. 활동 스택이 비어 있으면 주 활동 시작
- 2. 활동 스택이 지워지지 않았습니다.
- 3. 알림에서 활동 시작
- 4. Android : 알림에서 마지막 활동 복원
- 5. 알림에서 활동 시작하기
- 6. 알림에서 활동 시작 및 이전 활동으로 돌아 가기
- 7. 사용자가 로그인 할 때 활동 스택이 삭제됨
- 8. 모든 활동 스택이 비어 있습니다.
- 9. 백그라운드에서 예전 활동으로 활동 시작
- 10. 업데이트 후 활동 스택이 손상 되었습니까?
- 11. 활동 스택에 활동 설정
- 12. Cleartop을 부여한 후 활동 스택이 지워지지 않습니다.
- 13. 활동 스택을 기억할 기회가 있습니까? 다음번에 앱을 시작할 때 동일한 활동 스택이 있습니까?
- 14. Android AlarmManager 호출 실행 활동
- 15. 일반 활동 및 탭 활동
- 16. Android에서 카메라 활동 사용
- 17. 백그라운드에서 안드로이드 활동 실행
- 18. Android : 배경에서 활동 실행
- 19. 활동 계속 실행 - Android
- 20. 활동 후 코드 실행
- 21. 백그라운드에서의 활동 실행
- 22. 활동 스택을 다시 실행
- 23. android의 기본 활동 수신기
- 24. 스택의 루트 활동으로 특정 활동 만들기
- 25. Android 30 활동, 하나의 활동으로 만드는 방법
- 26. 이전 활동 이전의 활동으로 데이터를 전달하는 방법
- 27. 활동 그룹 외부의 일부 활동 호출
- 28. Android 위젯에서 활동 사용
- 29. 활동 내에서 intent.getStringExtra 사용
- 30. 활동 그룹 사용
하지만 스택이 비어있을 때 주 활동을 시작해야합니다.하지만 스택이 비어 있고 알림에서 활동을 시작하면 나중에 시작 활동으로 작동합니다. – dmp
예 홈 버튼을 눌렀을 때 감지하여 작업을 마칠 수 있습니다. –