Androidは優雅にアプリを終了

3115 ワード

オリジナルの文章は、転載があれば、出典を明記してください.http://blog.csdn.net/myth13141314/article/details/64920258
主にActivityの起動モードが使われていて、簡単で効果的で、2ステップしかかかりません.
  • MainActivityの起動モードをSingleTask
  • に設定
  • 出口をMainActivity
  • に置く
    げんりぶんせき
    Activityの4種類の起動モード
  • standard:標準モードで、起動するたびにインスタンス
  • が作成されます.
  • singleTop:スタックトップ多重モード、スタックトップでonNewIntent多重を呼び出す場合はonResume()から開始し、そうでない場合は新しいインスタンス
  • を作成します.
  • singleTask:スタック内多重化、このタイプのActivityを使用するとスタックトップ多重化に移行し、onResume()から開始し、その上にあるすべてのActivityをスタック
  • から除去する
  • singleInstance:singleTaskのプロパティを除いて、システムはActivityにスタック
  • を単独で作成します.
    Appを開くのは一般的に起動ページを経て、finish起動ページはMainActivityにジャンプして、それから一連のジャンプを経て、その間に数の不定なActivityが発生して、あるものは破棄されて、あるものはスタックの中に残っていますが、スタックの底は永遠に私たちのMainActivityです.MainActivityの起動モードをSingleTaskとし、終了した出口をMainActivityに設定します.そうすると、ユーザーがAppを終了するときは、必ずMainActivityに戻ります.このときスタックの中にはMainActivityしかなく、直接finishで終了すればいいです.
    最後にダブルクリックでAppを終了する実装を添付します
    //      
    private static boolean isExit = false;
    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
    
        if(keyCode==KeyEvent.KEYCODE_BACK){
    
            if(!isExit){
                isExit = true;
                Toast.makeText(this, "           ", Toast.LENGTH_SHORT).show();
                new CountDownTimer(2200,2200){
    
                    @Override
                    public void onTick(long millisUntilFinished) {
                    }
    
                    @Override
                    public void onFinish() {
                        isExit = false;
                    }
                }.start();
            }else{
                finish();
            }
    
            return false;
        }
    
        return super.onKeyUp(keyCode, event);
    }

    私の公衆番号に注目して、私と一緒に毎日少し進歩します!
    Android 优雅地退出App_第1张图片