1,490 views
この記事は最終更新から 2305日 が経過しています。
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()をコール } }