Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 重新启动我的应用程序_Android_Android Intent - Fatal编程技术网

Android 重新启动我的应用程序

Android 重新启动我的应用程序,android,android-intent,Android,Android Intent,我正在制作一个有3个“生命”和一个定时器的小游戏。 当生命结束或计时器为零时,我告诉它去“游戏结束”活动。在游戏结束时,我有一个“重试”按钮,它会将您发送到欢迎活动,您可以重新开始。问题是,我认为上一个游戏的计时器仍然在运行,因为它在下一个游戏中进入gameover活动,即使计时器和生命都正常 当有人按“重试”时,我是否可以将应用程序重置为启动模式 谢谢:) 编辑:我的代码:这是当时间结束,进入gameover活动时 @Override public void onCreate(Bundle

我正在制作一个有3个“生命”和一个定时器的小游戏。 当生命结束或计时器为零时,我告诉它去“游戏结束”活动。在游戏结束时,我有一个“重试”按钮,它会将您发送到欢迎活动,您可以重新开始。问题是,我认为上一个游戏的计时器仍然在运行,因为它在下一个游戏中进入gameover活动,即使计时器和生命都正常

当有人按“重试”时,我是否可以将应用程序重置为启动模式

谢谢:)

编辑:我的代码:这是当时间结束,进入gameover活动时

 @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_test);
    ImageView iv =(ImageView) findViewById(R.id.imageView1);
    final TextView mTextField = (TextView) findViewById(R.id.textView2);
    CountDownTimer one = new CountDownTimer(30000, 1000) {

     public void onTick(long millisUntilFinished) {
         mTextField.setText("time: " + millisUntilFinished / 1000);
     }

     public void onFinish() {

         toGameOver(null);

     }
  }.start();

}




public void toGameOver (View view)
{
    Intent intent = new Intent(this,GameOverActivity.class);
    intent.putExtra(EXTRA_MESSAGE, points.toString());
    startActivity(intent);

}
此时生命结束,进入游戏结束活动:

public void changepic(View view)
{
    boolean isCorrect=false;
    int n = 8;
    ImageView iv =(ImageView) findViewById(R.id.imageView1);
    TextView tv = (TextView) findViewById(R.id.textView1);  
    if(rndInt<3&&rndInt>0){
        isCorrect=true;
        points++;
    }

    if(!isCorrect&&lives==0)
        toGameOver(null);
    if (!isCorrect&&lives==1&&rndInt!=0)
    {
        lives--;
        ImageView iv1 = (ImageView) findViewById(R.id.imageView3);
        iv1.setVisibility(View.INVISIBLE);
    }
    if (!isCorrect&&lives==2&&rndInt!=0)
    {
        lives--;
        ImageView iv1 = (ImageView) findViewById(R.id.imageView4);
        iv1.setVisibility(View.INVISIBLE);
    }
    if (!isCorrect&&lives==3&&rndInt!=0)
    {
        lives--;
        ImageView iv1 = (ImageView) findViewById(R.id.imageView2);
        iv1.setVisibility(View.INVISIBLE);
    }

很抱歉,在询问游戏结束后是否要停止计时器时没有发布它,那么在函数toGameOver()中需要调用一个.cancel(),这将导致计时器取消。然后当游戏重新启动时,您应该调用one.start()

我们不是读心术者。发布你的代码。干得好,问题在哪里?!如果您想在“游戏结束”时关闭计时器,通常会有一个
cancel()
方法或其他方法,具体取决于您使用的计时器代码。如果您想在离开时重置活动,可以使用
finish()
方法,使用intent转到另一个活动时更好的方法是添加intent标志以清除活动堆栈
intent.setFlags(intent.flag\u activity\u clear\u TOP)。ofc,很难知道这里发生了什么。我猜。
public void goToStart (View view)
{
    Intent intent = new Intent(this,WelcomeActivity.class);
    startActivity(intent);

}