Android 서명이 패키지화된 APP가 백그라운드에서 실행될 때 icon을 누르면 프로그램이 재부팅되는 기이한 문제 해결
회사 프로젝트가 끝날 때 문제가 발생했습니다. 정식 서명으로 포장한 후에 테스트를 실시한 결과 프로그램이 정상적으로 실행될 때 홈 버튼을 누르면 데스크톱으로 돌아갑니다. 이때 앱을 클릭한 icon은 이전의 상태로 돌아가지 않고 splash 페이지에서 프로그램을 다시 시작합니다. 작업 목록에서 앱을 켜면 문제가 없고 debug 서명에서도 이 문제를 겪지 않습니다.나중에 찾아봤는데 스튜디오에서 포장한 버그래요.해결 방법은 다음과 같다.
시작 페이지에 다음 코드를 추가합니다.
if (!isTaskRoot()) {
finish();
return;
}
isTaskRoot () 는 현재 activity가 현재 작업 창고에서 가장 빠른 (마지막) activity인지 판단하는 것입니다.true로 되돌아갑니다. 그렇지 않으면false로 되돌아갑니다.
제 이해는 첫 페이지가 퀘스트 창고의 최초의activity가 아니라면 퀘스트 창고가 이전에 이미 존재했음을 설명하고finish는 현재 페이지를 삭제하고return을 나타냅니다. 이때 현재 퀘스트 창고의 최상위층의activity를 나타냅니다. 만약에 이해가 잘못되면 여러분의 댓글에서 지도를 바랍니다.
이것은 isTaskRoot() 방법 및 참고 사항입니다.
/**
* Return whether this activity is the root of a task. The root is the
* first activity in a task.
*
* @return True if this is the root activity, else false.
*/
public boolean isTaskRoot() {
try {
return ActivityManagerNative.getDefault().getTaskForActivity(mToken, true) >= 0;
} catch (RemoteException e) {
return false;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.