Android

Uygulamalarda Zaman Sayacı Kullanımı

android_tugrulasik_geriyesayKullandığımız birçok uygulama zamanlama ile ilgili işlem yapıyor. Oynadığımız oyunlar, kendimizi test ettiğimiz bilgi yarışmaları vb. hemen hemen her uygulamada zamanla ilgili bir kısıt veya bizler fark etmeden arka planda zamanlı çalışan işlemler söz konusu.

Android’in kütüphanelerinden CountDownTimer geriye doğru saymak için ideal bir kütüphane. Kütüphane sayesinde zamanlamalı birçok işinizi yapabilirsiniz.

Yazının devamında küçük bir kullanım örneğini ve projenin githup bağlantısını bulabilirsiniz.

 

package com.tugrul.android.countdowntimer;
 
/**
 * @author Tugrul Asik
 * @Date 06-JULY-2013
 */
 
import android.app.Activity;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
 
public class CountdownActivity extends Activity implements OnClickListener {
 
	private CountDownTimer geriyeSayici;	
 
	//Ne kadar sure geriye sayacak
	private final long baslangic = 10 * 1000;
 
	//Hangi araliklarla gosterecek
	private final long aralik = 1 * 1000;
 
	private boolean baslatildi = false;
	private Button btn_baslat;
	public TextView tv_kalanSure;
 
	@Override
	public void onCreate(Bundle savedInstanceState) {
 
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_countdown);
 
		btn_baslat = (Button) this.findViewById(R.id.button);
		btn_baslat.setOnClickListener(this);
 
		tv_kalanSure = (TextView) this.findViewById(R.id.timer);
 
		geriyeSayici = new MyCountDownTimer(baslangic, aralik);
		tv_kalanSure.setText(tv_kalanSure.getText() + String.valueOf(baslangic / 1000));
 
	}
 
	public class MyCountDownTimer extends CountDownTimer {
		public MyCountDownTimer(long startTime, long interval) {
			super(startTime, interval);
		}
 
		/*
		 * Zaman bittiginde calisir
		 */
		@Override
		public void onFinish() {
 
			tv_kalanSure.setText("Zaman Bitti ! - Time is UP !");
		}
 
		@Override
		public void onTick(long millisUntilFinished) {
			//Saniye olarak goster  1 saniye = 1000 millis
			tv_kalanSure.setText("" + millisUntilFinished / 1000);
		}
	}
 
	@Override
	public void onClick(View v) {
		if (!baslatildi) {
			geriyeSayici.start();
			baslatildi = true;
			btn_baslat.setText("DUR");
		} else {
			geriyeSayici.cancel();
			baslatildi = false;
			btn_baslat.setText("YENIDEN BASLAT");
		}
	}
 
}

 

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
 
    android:orientation="vertical" >
 
    <TextView
        android:id="@+id/timer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:paddingRight="10dip"
        android:textSize="70dp" />
 
    <Button
        android:id="@+id/button"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"        
        android:text="BASLAT" />
 
</RelativeLayout>

 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.tugrul.android.countdowntimer"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />
 
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.tugrul.android.countdowntimer.CountdownActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
 
</manifest>

tugrulasik_github

 

 

Keyifli geliştirmeler 😉