สิ่งนี้ขึ้นอยู่กับระยะเวลาที่คุณต้องเรียกใช้ฟังก์ชัน
ถ้าเป็น => 10 นาที→ฉันจะใช้ Alarm Manager
// Some time when you want to run
Date when = new Date(System.currentTimeMillis());
try{
Intent someIntent = new Intent(someContext,MyReceiver.class); // intent to be launched
// note this could be getActivity if you want to launch an activity
PendingIntent pendingIntent = PendingIntent.getBroadcast(
context,
0, // id, optional
someIntent, // intent to launch
PendingIntent.FLAG_CANCEL_CURRENT); // PendintIntent flag
AlarmManager alarms = (AlarmManager) context.getSystemService(
Context.ALARM_SERVICE);
alarms.setRepeating(AlarmManager.RTC_WAKEUP,
when.getTime(),
AlarmManager.INTERVAL_FIFTEEN_MINUTES,
pendingIntent);
}catch(Exception e){
e.printStackTrace();
}
จากนั้นคุณจะรับการออกอากาศเหล่านี้ผ่านเครื่องรับสัญญาณออกอากาศ โปรดทราบว่าสิ่งนี้จะต้องลงทะเบียนอีเธอร์ในรายการแอปพลิเคชันของคุณหรือผ่านcontext.registerReceiver(receiver,filter);
วิธีการสำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Broadcast Receivers โปรดดูเอกสารอย่างเป็นทางการ รับสัญญาณออกอากาศ
public class MyReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent)
{
//do stuffs
}
}
ถ้าเป็น = <10 นาที→ฉันจะไปกับ Handler
Handler handler = new Handler();
int delay = 1000; //milliseconds
handler.postDelayed(new Runnable(){
public void run(){
//do something
handler.postDelayed(this, delay);
}
}, delay);