gpt4 book ai didi

java - java/android 中的时间 + 应用程序崩溃

转载 作者:行者123 更新时间:2023-12-02 07:17:27 26 4
gpt4 key购买 nike

好的,大家好,我正在制作一个 Android 计时器应用程序,但它总是崩溃。我使用的是计时器,它会在达到 25 分钟时重置,然后再次开始。这是通过开始按钮 onclicklistener 中的 for 循环来完成的。在循环中,我有另一个 while 循环,其中我通过语句分配一个 long 类型变量耗时的值

//for循环内while循环的内容

 while(found==1){
temp = chrono.getBase() + SystemClock.elapsedRealtime();
if(temp == 25*60*1000){
found--;
}

我乘以 1000 因为时间以毫秒为单位?我做错了吗还是别的什么。谢谢。

最佳答案

while 循环可能会阻塞主 UI 线程,直到满足条件 found==1 为止。您可能需要的是一个 Timer 和一个 TimerTask。或者,按照 this article 中的建议,您可以使用处理程序启动 Runnable,每 50 或 100 毫秒更新一次计时器时间。这是一个示例(未经测试并改编自linked article!):

private Handler handler = new Handler();
handler.postDelayed(runnable, 100);

private Runnable runnable = new Runnable() {
@Override
public void run() {
/* do what you need to do */
boolean isTimerReady=foobar();
/* and here comes the "trick" */
if (!isTimerReady) handler.postDelayed(this, 100);
}
};

每 100 毫秒启动 foobar()。 foob​​ar() 应该返回一个 boolean 值 - 基本上是 while 循环中的计算,并更新用户界面。一旦 foobar() 返回 true,Runnable 就不会重新启动。

关于java - java/android 中的时间 + 应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14751689/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com