我的活动
protected void onDestroy(){
super.onDestroy();
finish();
}
public void onPause(){
super.onPause();
gv.gameLoopThread.setRunning(false);
finish();
}
public void redirectHome(){
onDestroy();
Intent intent=new Intent(PlayActivity.this, MainActivity.class);
startActivity(intent);
}
我的视图点击。
if(gameover){
//My Restart Button.
if(x>(getWidth()*.39375) && x<(getWidth()*.625) &&
y>(getHeight()*.583333333) && y<(getHeight()*.654166667)){
gameover=false;
createSprites();
destroyed=0;
}
//My Exit Button.
if(x>(getWidth()*.39375) && x<(getWidth()*.625) &&
y>(getHeight()*.729166667) && y<(getHeight()*.791666667)){
gameLoopThread.setRunning(false);
new PlayActivity().redirectHome();
}
}
我的重启按钮有效,但是我的退出按钮导致我的应用程序崩溃,将错误指向'Intent intent = new Intent(PlayActivity.this,MainActivity.class);'和'new PlayActivity()。redirectHome();
感谢任何帮助。
答案 0 :(得分:1)
您不必直接调用“OnDestroy()”回调,也可以在finish()
方法中调用onDestroy()
。
在您的情况下,最好将代码更改为类似的内容:
protected void onDestroy(){
super.onDestroy();
}
public void onPause(){
super.onPause();
gv.gameLoopThread.setRunning(false);
}
public void redirectHome(){
Intent intent=new Intent(PlayActivity.this, MainActivity.class);
startActivity(intent);
finish();
}
还有一个问题:这件事真的有用吗?我之所以这样问,是因为finish()
回拨onPause()
来电应该关闭您的活动,即使它出现在屏幕上也是如此。
无论如何,检查我的代码和评论结果)
编辑:您也无法实际创建活动实例并调用new PlayActivity().redirectHome();
之类的方法,因此您需要context
Аctivity
来执行新活动或完成这个。
答案 1 :(得分:0)
似乎因为您onDestroy
活动参考PlayActivity.this
无效或无效
您可以使用应用程序上下文代替PlayActivity.this
并使用FLAG_ACTIVITY_NEW_TASK