我正在启动一个调用自身并包含一个计时器的活动,在计时器到期后,我想启动一个活动,但问题是计时器在调用活动的所有实例中同时到期,结果是在所有这些实例中调用第二个活动。如何避免这种情况。代码如下 - :
public void onFinish() {
Intent intent = new Intent(Exam.this, ScoreCard.class);
intent.putExtra("scoreTillNow", scoreTillNow);
intent.putExtra("timeLeft", timeLeft);
intent.putExtra("reward", reward);
intent.putExtra("punishment", punishment);
intent.putExtra("totalTime", totalTime);
startActivity(intent);
finish();
}
答案 0 :(得分:0)
在计时器活动以外的任何活动中为公共静态布尔变量进行控制,并将其初始化为false,如:
public static boolean timerExpired = false;
现在在计时器到期时检查此变量,如果它是false,则调用第二个活动并将变量更新为true。如果变量为true,则不执行任何操作。
答案 1 :(得分:0)
您可以在singleTask
中使用launchMode singleInstance
或Manifest
进行活动。
但请提供您的计时器代码和更多详细信息