为什么我不能显示新活动?(意图)



我不明白为什么我的新活动不会开始(我省略了所有不相关的代码)

我正试图在时间结束后显示主菜单

public class GRenderer implements Renderer 
{
    public void timer ()
     {
        Game.currentGameTime = System.currentTimeMillis();
        Game.ellapsedTime = Game.currentGameTime - Game.gameStartTime;
        if (Game.ellapsedTime > 10000)
        {
            // THIS IS WHEN The GAME SHOULD END
            Toast.makeText(Game.context, "10Seconds", Toast.LENGTH_SHORT).show();
            Intent MainMenu = new Intent(getApplicationContext(),MainMenu.class); 
            startActivity(MainMenu);
        }
    }
    @Override
    public void onDrawFrame(GL10 gl) // when drawing to screen
    {
        timer();
    }
}

这是日志:

12-13 18:28:28.500: E/AndroidRuntime(20184): FATAL EXCEPTION: GLThread 1386
12-13 18:28:28.500: E/AndroidRuntime(20184): Process: com.damienrenner.spacefruitshooter, PID: 20184
12-13 18:28:28.500: E/AndroidRuntime(20184): java.lang.NullPointerException
12-13 18:28:28.500: E/AndroidRuntime(20184):    at android.content.ContextWrapper.getApplicationContext(ContextWrapper.java:109)
12-13 18:28:28.500: E/AndroidRuntime(20184):    at com.damienrenner.spacefruitshooter.GameLoop.timer(GameLoop.java:280)
12-13 18:28:28.500: E/AndroidRuntime(20184):    at com.damienrenner.spacefruitshooter.GameLoop.onDrawFrame(GameLoop.java:296)
12-13 18:28:28.500: E/AndroidRuntime(20184):    at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1523)
12-13 18:28:28.500: E/AndroidRuntime(20184):    at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)

您只能从另一个活动开始一个活动。似乎GRender不是您的活动。您应该将其传递给您的GLSurfaceView活动。

使用以下代码:

    Intent MainMenu = new Intent(YourActivity.this,MainMenu.class); 
    startActivity(MainMenu);

而不是

    Intent MainMenu = new Intent(getApplicationContext(),MainMenu.class); 
    startActivity(MainMenu);

有关getApplicationContext()的更多信息,请阅读此

最新更新