/var/log/messages

Feb 1, 2014 - 1 minute read - Comments - android

HOME ボタンとか電源ボタンとか

某アプリを Orientation Change 対応したのですが

  • HOME 出した時にはバックグラウンドで云々してる処理を止めたい
  • 電源ボタンで sleep な時も同様

みたいな依頼が入った。

対処としては

  • onStop で PowerManger の isScreenOn メソドの戻りで云々
  • onUserLeaveHint で云々

という形で何とかなったのかどうか。

実装ですが onStop にて

boolean isScreenOn = ((PowerManager)getSystemService(POWER_MANAGER)).isScreenOn();
if (!isScreenOn) {
    // off 状態な処理の記述

で sleep な状態なのかどうかを検出したり

    @Override
    protected void onUserLeaveHint() {
        Log.d(TAG, "onUserLeaveHint");

なメソドで HOME で最前面表示から離脱したのかを判断、という形。つうか本当にこれで良いのかどうかもアレだったりorz