我正在做一個倒數計時器。我已經想出了這個代碼,最初我認爲它的工作。然而,當我運行的應用程序發生兩件事情,我不知道如何解決......Android中的倒數計時器不同步?
- 這是不同步的,雖然它是系統時間和日期它說只有60天了不存在61,當我知道它是61!
- 如果我關閉應用程序,並返回其重置計數器...
任何幫助,這將不勝感激,它不是什麼特別的事情只是一個個人項目。
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView dateBx = (TextView) findViewById(R.id.textView1);
final TextView mTextField = (TextView) findViewById(R.id.mTextField);
final TextView minBx = (TextView) findViewById(R.id.minBx);
final TextView hourBx = (TextView) findViewById(R.id.hourBx);
//set todays date
DateFormat dateFormat1 = new SimpleDateFormat("dd/MM/yyyy");
Calendar cal1 = Calendar.getInstance();
//target date
DateFormat dateFormat2 = new SimpleDateFormat("dd/MM/yyyy");
Calendar cal2 = Calendar.getInstance();
cal2.set(2012,11,25);
//set maths
long time1 = cal1.getTimeInMillis();
long time2 = cal2.getTimeInMillis();
//difference variable
long diff = time2 - time1;
//equations
long diffSec = diff/1000;
long dMins = diff/(60 * 1000);
long dHour = diff/(60 * 60 * 1000);
long dDay = diff/(24 * 60 * 60 * 1000);
new CountDownTimer(diff, 1000)
{
public void onTick(long millisUntilFinished)
{
mTextField.setText("Seconds remaining: " + millisUntilFinished/1000);
dateBx.setText("Days remaining: " + millisUntilFinished/(24 * 60 * 60 * 1000));
minBx.setText("Minutes remaining: " + millisUntilFinished/(60 * 1000));
hourBx.setText("hours remaining: " + millisUntilFinished/(60 * 60 * 1000));
}
public void onFinish() {
mTextField.setText("done!");
}
}.start();
}
我的代碼的一些東西,我學到了組合,在Java和Android,如果你想這樣做它一起的更好的方法,那麼請讓我知道:)
感謝
你能提供一個例子,說明日期和時間錯誤的日期? – Sam
我分配給文本字段的變量與時鐘不同步,這就是我遇到的問題 – clearcut89