Java Android:在活动之间保持计时器运行
我有一个timer类,当按下按钮时调用它,它开始倒计时并将剩余时间显示为按钮文本,但当我离开活动并返回时,它们停止并消失。我知道为什么它们会作为android生命周期的一部分停止,我不想简单地节省它们的时间,并在我再次进入活动时重新启动它们(就像互联网上的大多数解决方案一样)。当活动不是当前活动时,我需要计时器保持运行,以便精确到计时器所代表的实时长度。这可能吗?感谢您的帮助 计时器类,该类工作正常,需要继续运行Java Android:在活动之间保持计时器运行,java,android,timer,android-activity,adk,Java,Android,Timer,Android Activity,Adk,我有一个timer类,当按下按钮时调用它,它开始倒计时并将剩余时间显示为按钮文本,但当我离开活动并返回时,它们停止并消失。我知道为什么它们会作为android生命周期的一部分停止,我不想简单地节省它们的时间,并在我再次进入活动时重新启动它们(就像互联网上的大多数解决方案一样)。当活动不是当前活动时,我需要计时器保持运行,以便精确到计时器所代表的实时长度。这可能吗?感谢您的帮助 计时器类,该类工作正常,需要继续运行 public class CustTimer { int length; Butt
public class CustTimer {
int length;
Button button;
public CustTimer() {
}
public CustTimer(int length, Button button) {
this.length = length;
this.button = button;
}
public void Count() {
new CountDownTimer(length, 1000) {
public void onTick(long millisUntilFinished) {
String min = String.valueOf(millisUntilFinished/60000 );
long re = millisUntilFinished%60000;
String secs = String.valueOf(re/1000);
button.setText(min + ":" + secs);
}
public void onFinish() {
button.setText("done");
}
}.start();
}
}
在活动的onCreate()函数中调用计时器类的代码
for (int i = 0; i < 16; i++) {
final int j = i;
buts[i].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
CustTimer t1 = new CustTimer(times[j], buts[j]);
timers[j] = t1;
t1.Count();
}
});
}
for(int i=0;i<16;i++){
最终int j=i;
但是[i].setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
CustTimer t1=新CustTimer(次数[j],但[j]);
定时器[j]=t1;
t1.Count();
}
});
}
times是计时器长度的数组,单位为毫秒。buts是任何包含屏幕上按钮的数组,便于访问。计时器是为每个按钮创建的计时器对象数组
for (int i = 0; i < 16; i++) {
final int j = i;
buts[i].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
CustTimer t1 = new CustTimer(times[j], buts[j]);
timers[j] = t1;
t1.Count();
}
});
}
您可以将在第一个“活动”中初始化的开始时间值存储在“共享优先级”中或传递给“活动到活动”,并将该时间用作在“活动”中创建计时器的基础。将计时器类设为静态。它可能会解决您的问题。
我不想简单地保存它们的时间,并在再次进入活动时重新启动它们
我发现这是最好的方法,因为即使应用程序被完全破坏,这也是保持计时器的唯一方法。