私はcountdowntimerを作成しました。ブール値が真の場合は今すぐ起動します。それを行う方法はありますか?あなたは、1つのアプローチは、あなたが意図を呼び出す直前に仕上げ()を呼び出すことになる活動が再び表示されないことを言及しているものではCountdownTimerが動作しているかどうかを検出します
public class GameActivity
{
int GameTime = 120;
long GameTimeLeft = GameTime;
long GameMillis;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.gamemap);
myupdater = new Handler();
GameMemory = new PreferenceHandler(this);
GameTimeLeft = GameMemory.getMinutesLeft();
GameMillis = (GameTimeLeft * 60000);
if (GameMemory.getTimerSetting())
{
Log.d("StartTimer", "Minutes Set " + (GameMillis/60000));
GameTimeLeftCounter.start();
GameMemory.setTimerSetting(false);
}
}
CountDownTimer GameTimeLeftCounter = new CountDownTimer(GameMillis, 60000)
{
public void onTick(long millisUntilFinished)
{
GameTimeLeft = millisUntilFinished/1000/60;
Log.d("GameTimeLeftCounter", "Time Left: " + GameTimeLeft);
GameMemory.setMinutesLeft(GameTimeLeft);
}
public void onFinish()
{
//GAME OVER TIMER FINISHED
Intent gameover = new Intent(BarcelonaTriviaGame.this, GameOver.class);
gameover.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
Log.d("TimerFinished", "Finished");
startActivity(gameover);
finish();
}
};
こんにちは、アクティビティが表示されますもう一度、startActivity('intent ')を使用して毎回再作成されます。これは、タイマーが再び開始されることを意味し、無制限のゲーム時間です。私はより多くのアクティビティを「ビハインド」しているので、finish()を使用する代わりにそのアクティビティを直接呼び出すことをお勧めします。 – Diego
これは、あなたのonCreateが再び呼び出されていることを意味します。 1つのアプローチはブール値とチェックを設定することです。 if(true)timer running else if(false)timerを開始します。 –
こんにちはRashmi、しかし、タイマーが実行されているかどうかを確認する方法はありますか? – Diego