(12) アプリのフォーカスON/OFFに合わせてOpenGLをResume/Pause

投稿者: | 2018年10月1日

この記事は最終更新から 1115日 が経過しています。

1. やりたいこと

OpenGLは画像処理に GPUを使用する。

すなわち、バッテリーで動作しているスマホにとっては消費電力が気になる。

そこで、以下のようにしたい。
・他アプリがフォーカスを得て、自アプリが非アクティブになった時、OpenGL制御を止めたい。
・自アプリがフォーカスを得て、アクティブになった時、OpenGL制御を動かしたい。

今回はこれを実装してみる。

2. やってみる!

Activityでフォーカス ON/OFFのイベントを捕捉し、GLSurfaceViewに対して ON/OFFを指示する。

具体的には下記の onPause(), onResume() に書いた通り。

package net.dogrow.www.opengltest;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {
    MyGLView m_glView;

    @Override protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        m_glView = new MyGLView(this);
        setContentView(m_glView);
    }

    @Override protected void onPause() {
        super.onPause();
        m_glView.onPause();   //★ Viewの onPause()をコール
    }

    @Override protected void onResume() {
        super.onResume();
        m_glView.onResume();   //★ Viewの onResume()をコール
    }
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)