0
嘗試實現應該顯示在按鈕上的CountDownTimer。只要我不轉動智能手機,它就可以正常工作。打開智能手機後,按鈕僅顯示初始值文本,即使牛仔時尚仍在運行。有人知道爲什麼在打開智能手機後,myButton.setText()方法在onTick()方法中不起作用嗎?爲什麼在打開smarphone並使用CountDownTimer後不能在按鈕上繪製文本?
public class MainActivity extends AppCompatActivity {
private TextView mTextMessage;
private TextView myTextView;
private Button myButton;
private CountDownTimer countDownTimer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextMessage = (TextView) findViewById(R.id.message);
myTextView= (TextView) findViewById(R.id.textView);
myButton= (Button) findViewById(R.id.button);
myTextView.setText("Set new text");
myButton.setText("Set Button text");
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myButton.setText("Button clicked");
countDownTimer = new CountDownTimer(60 * 1000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
//After turning the Smartphone the follow both methods do not work anymore
myButton.setText("Calc: " + millisUntilFinished/1000);
myTextView.setText("Calc: " + millisUntilFinished/1000);
}
@Override
public void onFinish() {
}
};
//timer started
countDownTimer.start();
}
});
}
}
請檢查onFinish是否在您打開設備。 – AndroidStorm
開啓智能手機後不會調用完成。我也可以連接調試器,看到轉動後計時器仍然運行。但myButton.setText(「Calc:」+ millisUntilFinished/1000); 方法不顯示值。 –
一般來說,我不認爲你會對這段代碼感到滿意。例如:你有沒有看到當你點擊按鈕第二次或第三次可以說在初始敲擊後5秒鐘後會發生什麼? – Barns