Android 서명이 패키지화된 APP가 백그라운드에서 실행될 때 icon을 누르면 프로그램이 재부팅되는 기이한 문제 해결

1134 단어
전언
회사 프로젝트가 끝날 때 문제가 발생했습니다. 정식 서명으로 포장한 후에 테스트를 실시한 결과 프로그램이 정상적으로 실행될 때 홈 버튼을 누르면 데스크톱으로 돌아갑니다. 이때 앱을 클릭한 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;
        }
    }

좋은 웹페이지 즐겨찾기