在更改构造函数的值时,我遇到了一个主要问题。
这是一个手电筒应用程序。它将连接到一个站点,以检查间隔值(例如。它将每2秒将它存储到一个名为frum_timer的变量中。
这是一个用来做这个的物体。(如果有新值,它也会更新布尔值)
FlashActivity = new CountDownTimer(40000, frum_timer) {
@Override
public void onTick(long millisUntilFinished) {
stats_of_run = true;
if (bool) {
final_form.setText("\\Flash ON//");
// CAMERA INSTRUCTIONS FOR OPENING FLASH
bool = false;
frumtimer_stats.setText("Speed:" + frum_timer);
} else {
stats_of_run = true;
final_form.setText("->Flash OFF-<");
// CAMERA INSTRUCTIONS FOR CLOSING FLASH
bool = true;
}
}
@Override
public void onFinish() {
}
}.start(); 我制作了另一个CountDownTimer对象,刷新速度为200秒,以确保来自FlashActivity对象的frum_timer将进行更改。
用这个
frumtimer_stats.setText("Speed:" + frum_timer);在FlashActivity中显示变量。
但是,在变量frum_timer被更改后,FlashLight继续以相同的速度一次又一次地运行,即使一个FlashActivity.cancel()后面跟着FlashActivity.start()
有人能帮我一下吗?
代码的完整链接:https://mycodestock.com/public/snippet/14395
摘要:1.启动应用程序。2.刷新倒计时在2秒3开始。当出现frum_timer时,FlashActivity将启动。2秒后,如果在frum_timer上存储了另一个值,则实际的FlashActivity将被取消并启动一个新的值。4.问题是新的FlashActivity开始,但是旧的 frum_timer
发布于 2015-08-24 20:22:38
我用:
public void startProgress(View view) {
// do something long
Runnable runnable = new Runnable() {
@Override
public void run() {
for (int i = 0; i <= 20; i++) {
final int value = i;
doFakeWork();
progress.post(new Runnable() {
@Override
public void run() {
// text.setText("Updating");
progress.setMax(20);
progress.setProgress(value);
}
});
}
}
};
new Thread(runnable).start();
}
private void doFakeWork() {
try {
Thread.sleep(800);
} catch (InterruptedException e) {
e.printStackTrace();
}
}https://stackoverflow.com/questions/32167930
复制相似问题