3

編集および解決済み(以下)

ユーザーがアクティビティを離れるときに、一種の最終チェックを行う必要があります。
このチェックの結果が不合格なら、彼を外出させないでおく必要があります。

私はこのようなものが必要です:

@Override
protected void onPause() {
    if (comprobations == true){
        super.onPause();
        } else {
            NOT EXIT!!
        }
}

簡単に思えますが、試してみましたが実行されません。

誰でも私を助けることができますか?

サンクス

解決:

迅速な回答をありがとうございました。
それらのすべてが私を助けてくれて、私はいくつかの新しいことを学びました.

私は方法を試しましたonBackPressed()、これは私が探していたものです。ユーザーがホームボタンやその他の方法を押してアプリを終了できることはわかっていますが、ユーザーがメインメニューに戻ったときにアプリの構成が問題ないと思わないようにしたいだけです。アプリから外出したい場合は大丈夫です。
だから私はこのように何かをします:

@Override
public void onBackPressed() {
    Log.d(LOGTAG, "onBackPressed");
    if (COMPROBATIONS() == true){
        super.onBackPressed();
    } else {
        SHOW WARNING!
    }
    return;
}


お世話になった皆様、ありがとうございました。
よいひとときを。

4

4 に答える 4

5

ユーザーがアクティビティから離れないようにするためにできることは何もありません。onPause メソッドが呼び出されると、アプリケーションはバックグラウンドに入り、停止するためにできることは何もありません。

ユーザーがアクティビティを離れるときに本当に何かをしたい場合は、ononBackPressed()メソッドをオーバーライドして戻るボタンをオーバーライドし、他のアクションを実行させることができます。ただし、ユーザーはさまざまな方法で離れることができます (ホーム ボタンを押すなど)。

于 2012-12-20T15:56:51.167 に答える
4

簡単な答えは、「これはできません」または「これは不可能です」です。アプリケーションは、(システムの) リソースが不足しているときに、ユーザーがアプリケーションを閉じたり、システムがアプリケーションを強制終了したりするのを防ぐことはできません。

また、いくつかの組み込みアプリ (Samsung のセットアップなど) と比較する場合は、それらの「特別な」アプリはオペレーティング システムの内部にアクセスでき、アプリケーションと同じレベルで動作していないことに注意してください。

于 2012-12-20T15:51:49.367 に答える
0

それらを呼び出すのは Android であるため、これを行うことはできません。

アクティビティを終了する前にチェックを入れるか、戻るキーをトラップしてください。

if (!comprobations){
     this.finish():
}

または:

public boolean onKeyDown(int keyCode, KeyEvent event){

    if(keyCode == KeyEvent.KEYCODE_BACK) {
        if (!comprobations){
            this.finish():
            return true;
        }

        return false;

    }
}
于 2012-12-20T15:52:35.663 に答える
0

これは、戻るボタンをオーバーライドすることで可能です。このようにします:

public boolean onKeyDown(int keyCode, KeyEvent event) {

if(keyCode==KeyEvent.KEYCODE_BACK)
{
  if (comprobations == true){
          finish();
       } else {
          NOT EXIT!!
       }
 }
}
于 2012-12-20T15:54:11.817 に答える