2012-02-06 67 views
0

我正在開發遊戲,我試圖開始一個活動,顯示玩家評分和重啓遊戲的按鈕,當玩家失敗或完成級別,但它會拋出NullPointerException。這是我的代碼。它出什麼問題了。Android:從opengl rendererr開始活動

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


    <activity 
     android:name=".Restart" 
     android:label="@string/app_name" 
     android:screenOrientation="portrait" 
     android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen"> 
     <intent-filter> 
      <action android:name="android.intent.action.RESTART" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </activity> 

回答

1

方法onDrawFrame在線程GLThread中工作。您無法從非UI線程啓動Activity。

1

startActivity()在Activity中可用。 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); 
}