Selasa, 04 Desember 2012

Membuat Aplikasi Android dengan Timer untuk Menjalankan Proses secara Berkala


Wah sudah lama sekali tidak menulis blog :)
Penulis ingin memulai dulu dengan sesuatu yang sedikit dahulu tetapi berbobot, kali ini kita pelajari cara membuat Timer di Android yang dapat digunakan untuk melakukan sesuatu secara berkala, dalam kasus ini kita pakai saja untuk menampilkan Tanggal Bulan Tahun Jam Menit Detik setiap 1 detik, sehingga tulisan di TextView seakan-akan berdetak.

Program utama kita letakkan di MainActivity

MainActivity.java


package com.amijaya.androidtimer;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

// http://cariprogram.blogspot.com
// nuramijaya@gmail.com

public class MainActivity extends Activity {
Timer timer = new Timer();
    long starttime = 0;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        //starttime = System.currentTimeMillis();
        timer = new Timer();
        //timer.scheduleAtFixedRate(new doTask(), 0, 1000);
        //timer.schedule(new TimerTask() {
        timer.schedule(new TimerTask() {
       
@Override
public void run() {
MainActivity.this.runOnUiThread(new Runnable() {

public void run() {
       TextView txt = (TextView)findViewById(R.id.TextView01);

SimpleDateFormat s = new SimpleDateFormat("dd/MM/yyyy HH:mmss");
       String format = s.format(new Date());

txt.setText(format);
}
});
}
}, 100, 1000);

    }
}





Kemudian tampilannya kita pakai saja tampilan default kemudian ditambah sat buah TextView dengan nama TextView01 :

main.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
<TextView android:text="@+id/TextView01" android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
</LinearLayout>


Android Manifest tidak perlu kita ubah, sesuai dengan Activity yang telah dibuat dalam hal ini MainActivity.

AndroidManifest.xml


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.amijaya.androidtimer"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".MainActivity"
                  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>
    <uses-sdk android:minSdkVersion="8" />

</manifest> 


Hasilnya


Project selengkapnya silakan didownload disini :

https://docs.google.com/open?id=0B4i1FYc_4RXzNlNyMlgzYzl5OWs

Semoga bermanfaat, Selamat Coding.