Mendeteksi Iddle Time (Waktu Iddle) Pada Blackberry

Artikel berikut ini akan membahas bagaimana caranya membuat sebuah aplikasi blackberry yang akan menjalankan perintah tertentu saat waktu iddle (iddle time) sudah melebihi jangka waktu tertentu.
mendeteksi iddle time pada blackberry

Maksud saya seperti ini. Misalkan kita punya sebuah aplikasi blackberry yang terdiri dari halaman login dan halaman menu. Setelah login, user akan masuk ke halaman menu. Nah untuk alasan keamanan, jika user tidak melakukan aktivitas apa-apa selama waktu tertentu misalnya 3 menit atau lazimnya diistilahkan dengan user iddle selama 3 maka aplikasi akan secara otomatis logout ke halaman login. Sehingga aplikasi tidak disalah gunakan oleh orang lain (misalnya dibuat mainan anak, dsb).

Bagaimana caranya? silahkan simak selengkapnya di bawah ini.



kode berikut ini akan mendeteksi aktivitas user dalam beberapa waktu yang telah kita tentukan. Jadi jika tidak ada aktivitas seperti tombol di tekan dan scroll maka aplikasi akan mengeksekusi perintah tertentu, dalam hal ini kembali ke halaman login.
//jalankan thread untuk listening iddle time
Calendar cal = Calendar.getInstance();
Date dt = cal.getTime();//get current time
Timer tim = new Timer();
tim.schedule(new IddleChecker(tim),dt,60000);//run iddlechecker every x ms

Taruh kode di atas tepat saat tombil login ditekan, yaitu pada listener tombol login anda. Kode di atas akan meneksekusi class IddleChecker tiap 60000 millisecond, atau 1 menit.

Kemudian untuk class IddleChecker adalah seperti di bawah ini. (buat class baru dengan nama IddleChecker)


package com.dsi.timer;

import java.util.Timer;
import java.util.TimerTask;

import com.dsi.smsbanking.LoginScreen;
import com.dsi.smsbanking.MainMenuScreen;

import net.rim.device.api.system.DeviceInfo;
import net.rim.device.api.ui.UiApplication;

/*
 * @herahadi
 */

public class IddleChecker extends TimerTask{
 Timer tim;
 public IddleChecker(Timer _tim) {    
  tim = _tim;
 }    
   /*For Every x time the control will pass through this method */ 
   public void run() 
   {
    System.out.println("**********************************************iddle checker called - idle time:"+DeviceInfo.getIdleTime());
    if(DeviceInfo.getIdleTime() >= 180  )/*if its idle for x second*/  
    {       
     /*If its idle for 10mins then Do what you want to Do*/
     System.out.println("**********************************************max iddle detected");
     UiApplication.getUiApplication().invokeLater(new Runnable(){
    public void run() {
     tim.cancel();//stop timer
     UiApplication.getUiApplication().pushScreen(new LoginScreen());

    }
   });
    }                
  }
}

Nah, class IddleChecker ini akan menampilkan halaman LoginScreen jika iddle time (waktu iddle) telah melebihi 180 detik atau 3 menit, dan menghentikan timer sebelumnya.

Itulah tadi bagaimana mendeteksi waktu iddle pada blackberry dan sekaligus penerapannya pada aplikasi blackberry. Semoga bermanfaat.

Selamat mencoba.

Comments