0

ちょっと私は次のようなコードを持っています:

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (event.getAction() == KeyEvent.ACTION_DOWN) {
        switch (keyCode) {
        case KeyEvent.KEYCODE_HOME:
            System.out.println("sdfadsfadsf");
            finish();
            return true; }
  } return super.onKeyDown(keyCode, event);}

私の問題は、アプリが終了せず、println が実行されないことです。誰かが私がここで間違っていることを教えてもらえますか? ユーザーがホームキーを押すと、アプリが閉じられるはずです。これは、ユーザーが他のアプリを開いたときにパフォーマンスの問題が発生するためです。アプリのパフォーマンス効率を高めることもできますが、このタイプのアプリでは、実行し続ける必要はまったくありません。

4

4 に答える 4

2

メインで onClose を使用してみてください。これにより、アプリを閉じたときにファイルを保存したり、何でもしたりできます。何かのようなもの...

@Override
protected void onStop() {
    super.onStop();

//Do whatever
}
于 2013-04-29T21:57:39.620 に答える
0

ここSOで見つけました:

最後に、アクティビティのコードは次のようになります。

@Override
public void onAttachedToWindow() {
    super.onAttachedToWindow();
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    boolean defaultAction = super.onKeyDown(keyCode, event);

    if (keyCode == KeyEvent.KEYCODE_HOME) {
        Log.i(TAG, "it's into the IF statement!");
    }

    return defaultAction;
}
于 2013-04-29T22:25:32.143 に答える