Android:opengl rendererからアクティビティを開始する

私はゲームを開発しています。プレイヤーが失敗したりレベルをクリアしたりすると、プレーヤーのスコアと再開のボタンを表示するアクティビティを開始しようとしていますが、NullPointerExceptionがスローされます。ここに私のコードです。どうしたんだ。

    public class MyRenderer extends Activity implements Renderer {
    @Override
public void onDrawFrame(GL10 gl) {
       ...............
       if(..............) startActivity(new Intent("android.intent.action.RESTART"));
       ...............
       }
    }


    
        
            
            
        
    
0

2 答え

メソッドonDrawFrameはスレッドGLThreadで動作します。非UIスレッドからアクティビティを開始することはできません。

1
追加された

アクティビティでstartActivity()を使用できます。 GLSurfaceViewはビューです。

これを試して:

public class YourRenderer implements GLSurfaceView.Renderer{
.....
.....
private Context mContext;

public YourRenderer(Context context){
mContext = context;
}

public onDrawFrame(Gl10 gl){
if(some statement){
Intent intent = new Intent(...);
mContext.startActivity(intent);
}
1
追加された