我编写了游戏,应该使用.startActivity
来显示应该显示得分的活动,问题是,我没有正确显示活动,我得到“不支持弃用的线程方法“即可。我搜索了这个错误,我删除了我的应用程序中的所有Thread.stop()
,但它没有帮助。可能还有其他原因导致我遇到这种类型的错误吗?
public class GameFrame extends Activity implements OnTouchListener, OnLossListener {
Panel game;
@Override
public void onCreate(Bundle savedInstanceState) {
Display d=getWindowManager().getDefaultDisplay();
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
Point p=new Point(d.getWidth(),d.getHeight());
game=new Panel(this,p);
setContentView(game);
game.setOnTouchListener(this);
game.setOnLossListener(this);
}
public boolean onKeyDown (int kc,KeyEvent ke){
if (kc==23){
game.shoot();
}
return true;
}
public void onPause(){
super.onPause();
game.thread.setState(false);
game.mech.setState(false);
this.finish();
}
@Override
public boolean onTouch(View v, MotionEvent me) {
if (v.equals(game)){
game.setPosOfPlane((int)me.getX());
}
return true;
}
@Override
public void lost(int score) {
Intent i=new Intent (this,EndGame.class);
i.putExtra("score",score+"");
startActivity (i);
}
}
答案 0 :(得分:1)
使用Thread.currentThread()。interrupt();而是停止();
希望它有助于cya!
答案 1 :(得分:0)
我无法告诉你究竟是什么问题,但我可以给你一些提示。
首先,您通常在启动应用程序时创建一个线程并让它运行直到您想要退出游戏(用户按下BACK)。除此之外,你只是暂停你的游戏线程,例如当您显示另一个活动或您的应用暂时暂停时(用户按下HOME)。
如果你想结束你的游戏线程,就让它自然死掉。通常这样的线程在某种循环中运行,所以你只需退出这个循环,线程将自行终止。你通常在主线程的游戏线程上调用join()
来阻止它,直到游戏线程死亡。
你永远不应该直接操纵线程的状态。