0

ユーザーがホームまたは戻るボタンを押したときにタイマーを一時停止する onPause() メソッドをオーバーライドした単一のアクティビティ タイマー アプリケーションがあります。ただし、ユーザーが手動で画面をオフにした場合でもタイマーを動かし続けたいと思いますが、これは onPause() メソッドも呼び出すことがわかっています。これを回避する方法はありますか?

4

2 に答える 2

0

onBackPressed戻るボタンが押されたときに追加のロジックを追加できるようにオーバーライドできます。onStop()ただし、別のアクティビティがフォアグラウンドに移動したときにのみ呼び出される にコードを配置することをお勧めします。

詳細については、Android ドキュメントを参照してください

于 2013-01-02T03:02:17.870 に答える
0

onPause() メソッド内で画面をオフにするイベントを検出して無視することで、これを行うことになりました。これを行う方法については、http: //thinkandroid.wordpress.com/2010/01/24/handling-screen-off-and-screen-on-intents/を参照してください。

具体的には、コメントからこのコードを使用しました (Kyle の礼儀):

    @Override
    protected void onCreate() {
        // initialize receiver
        IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
        filter.addAction(Intent.ACTION_SCREEN_OFF);
        BroadcastReceiver mReceiver = new ScreenReceiver();
        registerReceiver(mReceiver, filter);
        //NEW
        PowerManager pm =(PowerManager) getSystemService(Context.POWER_SERVICE);
        // your code
    }
    @Override
    protected void onPause() {
        // when the screen is about to turn off
        // Use the PowerManager to see if the screen is turning off
        if (pm.isScreenOn() == false) {
            // this is the case when onPause() is called by the system due to the screen turning off
            System.out.println(“SCREEN TURNED OFF”);
        } else {
            // this is when onPause() is called when the screen has not turned off
        }
        super.onPause();
    }
于 2013-01-02T18:53:55.903 に答える