Android: начать деятельность с opengl rendererr - PullRequest
0 голосов
/ 06 февраля 2012

Я разрабатываю игру, и я пытаюсь запустить действие, которое показывает счет игроков и кнопку для перезапуска игры, когда игрок проваливается или завершает уровень, но при этом выдается исключение NullPointerException.Вот мой кодчто с ним не так.

    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>

Ответы [ 2 ]

2 голосов
/ 23 января 2013

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 голос
/ 02 ноября 2012

Метод onDrawFrame работает в потоке GLThread. Вы не можете начать активность с потока, не являющегося пользовательским интерфейсом.

...