我創建了一個帶有倒計時器的小型應用程序,用於撲克盲注,但我注意到當鎖定屏幕打開時,計時器將從開始重置。屏幕鎖定後重置計時器
我怎樣才能解決這個問題?
這是類的代碼:
public class timer extends Activity {
/** Called when the activity is first created. */
TextView contoallarovescia;
TextView clicca;
public boolean touchattivo=false;
public int giro=1;
public int girosecondi=8*60;
@Override
public void onCreate(Bundle savedInstanceState) {
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.timer);
contoallarovescia = (TextView) this.findViewById(R.id.contoallarovescia);
Typeface typeFace=Typeface.createFromAsset(getAssets(),"font/LCDMB___.TTF");
contoallarovescia.setTypeface(typeFace);
clicca = (TextView) this.findViewById(R.id.clicca);
chiamatimer(girosecondi*1000,1000);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
// MotionEvent object holds X-Y values
if (touchattivo)
{
chiamatimer(girosecondi*1000,1000);
}
return super.onTouchEvent(event);
}
public void chiamatimer(int secondi, int ciclo)
{
touchattivo=false;
clicca.setVisibility(View.INVISIBLE);
new CountDownTimer(secondi, ciclo) {
public void onTick(long millisUntilFinished) {
int sec =(int) (millisUntilFinished/1000);
String result = String.format("%02d:%02d", sec/60, sec % 60);
contoallarovescia.setText(result);
}
public void onFinish() {
String result = String.format("%02d:%02d", 0, 0);
giro++;
if (giro==5)
{
girosecondi=6*60;
}
contoallarovescia.setText(result);
clicca.setVisibility(View.VISIBLE);
touchattivo=true;
try {
Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), notification);
r.play();
} catch (Exception e) {}
}
}.start();
}
}
TNX!
你壓倒onPause嗎? – Addison 2012-07-12 15:42:31
發佈您的代碼。 – 2012-07-12 15:43:09