Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.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
Java 倒计时-单击运行一个函数_Java_Android_Android Intent - Fatal编程技术网

Java 倒计时-单击运行一个函数

Java 倒计时-单击运行一个函数,java,android,android-intent,Java,Android,Android Intent,我有一个倒计时,我想点击onTick,它每秒钟都会重新启动我的活动,我想让它只启动我的第二个活动一次,我该怎么做 另外,我想将startActivity()保持在onTick内 代码: 创建一个布尔变量launchSecondActivity,并将其设置为方便值,然后您说应该只启动一次 public void onTick(long millisUntilFinished) { long millis = millisUntilFinished; //Convert milliseconds

我有一个倒计时,我想点击onTick,它每秒钟都会重新启动我的活动,我想让它只启动我的第二个活动一次,我该怎么做

另外,我想将startActivity()保持在onTick内

代码:


创建一个布尔变量
launchSecondActivity
,并将其设置为方便值,然后您说应该只启动一次

public void onTick(long millisUntilFinished) {

long millis = millisUntilFinished;
//Convert milliseconds into hour,minute and seconds
String hms = String.format("Viberation end in: " + "%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis), TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)), TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));
 myText.setText(hms);

Intent toST = new Intent(MainActivity.this, ShowTime.class);
    if(launchSecondActivity){
        launchSecondActivity=false;
        startActivity(toST);
    }

}

您不想在每次勾选时都开始
活动
,但希望继续在
onTick()内调用
startActivity()
。这有什么意义?我希望它在可能的情况下调用startActivity()?您需要问自己的问题是,您希望第二个活动何时开始?您是否尝试在启动活动之前等待几毫秒?如果是这样的话,请忘记计时器的内容,只需将创建Intent和startActivity调用的代码包装在处理程序上的Runnable和postDelayed中。它告诉我launchSecondActivity的值集从未使用过?虽然技术上正确,但我认为这并不能解决@Kardio真正想要做的事情。它只是验证了一种在延迟后启动活动的糟糕方式。
public void onTick(long millisUntilFinished) {

long millis = millisUntilFinished;
//Convert milliseconds into hour,minute and seconds
String hms = String.format("Viberation end in: " + "%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis), TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)), TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));
 myText.setText(hms);

Intent toST = new Intent(MainActivity.this, ShowTime.class);
    if(launchSecondActivity){
        launchSecondActivity=false;
        startActivity(toST);
    }

}