問題記録-apkを初めてインストールした後、ホームページに起動し、ホームキーを押してデスクトップに戻り、アプリケーションアイコンをクリックして、問題を再起動します.

1143 ワード

質問:
      初めてappをインストールして、開いて、正常にホームページの面にログインして、この時homeボタンをクリックして、デスクトップに戻って、更にアプリケーションiconをクリックして、私たちの考えを押していないですぐにホームページの面に戻ります.
理由:
  • Intentを起動するたびにTaskが新しく作成されると、そのTaskは作成されたIntentを記録します.その後、Intentの作成と完全に一致する新しいものが必要である場合(起動クラス、action、categoryなどすべてが同じで、複数でなくても不可欠であると完全に一致する)、IntentはActivityの新規起動をトリガーするのではなく、既存の対応するTaskをフロントに移動するだけです.これは、デスクトップがアイコンを再度クリックすると、Appの実装を再起動するのではなく、バックグラウンドタスクをフロントに移動する理由です.
  • 最初のインストールで起動したIntentは、デスクトップからクリックして起動したIntentとは起動クラスではないので(理由1を参照)、前のページに戻るのではなく、起動ページを再作成します.

  • ソリューション:
          起動ページActivityのonCreate()メソッドに次のロジックを追加します.
    //           ,          activity
    if (!this.isTaskRoot()) {
        Intent intent = getIntent();
        if (intent != null) {
            String action = intent.getAction();
            if (intent.hasCategory(Intent.CATEGORY_LAUNCHER) && Intent.ACTION_MAIN.equals(action)) {
                finish();
                return;
            }
        }
    }

    通常、起動ページ(フラッシュページとも呼ばれる)は、最初の起動がタスクスタックのルートであれば、一般的に起動が完了するとfinishが落ち、ルートActivityがホームページ面になり、homeキーを押して再びデスクトップアイコンからクリックすると、起動ページはこのコードを通りますが、finishは現在のページを落とし、バックグラウンドはフロントに切り、問題は解決します.