হ্যাঁ জাভা এর টাইমার ব্যবহার করা যেতে পারে , তবে প্রশ্নটি আরও ভাল উপায়ের জন্য জিজ্ঞাসা করে (মোবাইলের জন্য)। কোনটি ব্যাখ্যা করা হয় এখানে ।
স্ট্যাক ওভারফ্লোর জন্য:
যেহেতু টাইমার একটি নতুন থ্রেড তৈরি করে এটিকে ভারী হিসাবে বিবেচনা করা যেতে পারে,
ক্রিয়াকলাপটি হ্যান্ডলারটি চলাকালীন আপনার সাথে যা দরকার তা যদি একটি কল ফিরে আসে তবে এটি একটি এর সাথে একত্রে ব্যবহৃত হতে পারে
চলমান :
private final int interval = 1000; // 1 Second
private Handler handler = new Handler();
private Runnable runnable = new Runnable(){
public void run() {
Toast.makeText(MyActivity.this, "C'Mom no hands!", Toast.LENGTH_SHORT).show();
}
};
...
handler.postAtTime(runnable, System.currentTimeMillis()+interval);
handler.postDelayed(runnable, interval);
বা একটি বার্তা
private final int EVENT1 = 1;
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case Event1:
Toast.makeText(MyActivity.this, "Event 1", Toast.LENGTH_SHORT).show();
break;
default:
Toast.makeText(MyActivity.this, "Unhandled", Toast.LENGTH_SHORT).show();
break;
}
}
};
...
Message msg = handler.obtainMessage(EVENT1);
handler.sendMessageAtTime(msg, System.currentTimeMillis()+interval);
handler.sendMessageDelayed(msg, interval);
আপনি যদি অন্য থ্রেড থেকে ইউআই থ্রেডে কোনও টুকরো কোড চালনা করতে চান তবে এই দিকটি ব্যবহার করা যেতে পারে।
আপনার ক্রিয়াকলাপটি না চলতে থাকলে যদি আপনার কল ফিরে পাওয়া দরকার তবে আপনি একটি অ্যালার্ম ম্যানেজার ব্যবহার করতে পারেন use