アプリを作っていてSurfaceViewの上から別の画面(スコアなど)を表示したくなった その際に何で画面を切り替えるか、どうやって処理を中断させるか、悩んだので書いて置きます まあ、タイトルの通り、別画面への以降は別Activity呼び出しを使いました SurfaceView上のから以下のコードを実行するといい Intent i = new Intent(getContext(),ClearActivity.class); i.putExtra("DataKeyWord",Data); getContext().startActivity(i); ViewのgetContextを使っての呼び出し ここで、別画面での処理の後、もう一度呼び出し元のSurfaceViewに戻りたいと考えました しかし、getContextだと startActivityForResultメソッドは使えないようです どうにかならんかなあ、とLogCatでトレースし、SurfaceViewとActivityの動きを観察してみた SurfaceViewのオーバーライドメソッドは以下の3つ Viewが生成されるとき呼び出し surfaceCreated(SurfaceHolder holder) Viewが変更されたとき呼び出し surfaceChanged(SurfaceHolder holder,int format,int w,int h) Viewが破棄されるとき呼び出し surfaceDestroyed(SurfaceHolder holder) Activityのオーバーライドメソッドは多いから省略! 図はめんどいので字で メインのActivityを A 呼び出される側のActivityを B SurfaceViewは S とする A:onCreate A: onStart A:onResume //ここでSurfaceViewを生成 S: SurfaceCreated S:SurfaceChanged //ここで一定条件を満たした時,Intentを投げる A:onPause B:onCreate S: Surfa...