我不明白为什么我的新活动不会开始(我省略了所有不相关的代码)
我正试图在时间结束后显示主菜单
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()的更多信息,请阅读此