某アプリを 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