您可以为此使用Handler。 Handler 允许您发送和处理与线程的 MessageQueue 关联的 Message 和 Runnable 对象。每个 Handler 实例都与单个线程和该线程的消息队列相关联。
Handler 有两个主要用途: (1) 安排消息和可运行文件在未来某个时间点执行; (2) 将要在与您自己的线程不同的线程上执行的操作排入队列。
示例:
private final static int TIMEINTERVAL = 600000; //10 minutes
Handler mHandler;
Runnable mHandlerTask = new Runnable()
{
@Override
public void run() {
// call your api here.
ApiCall();
mHandler.postDelayed(mHandlerTask, TIMEINTERVAL);
}
};
private void startTask(){
//run your Task
mHandlerTask.run();
}
private void stopTask()
{
// stop your Task
mHandler.removeCallbacks(mHandlerTask);
}
您还可以使用AlarmManager 并从您的活动中设置一个重复警报,该警报将每 10 分钟调用一次接收器:
AlarmManager alarmManager=(AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),600000,
pendingIntent);
广播接收者:
public class Receiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
//Call your API
}
}
在您的 Manifest.xml 中注册接收方
<receiver
android:name="com.YourPackage.AlarmReceiver"
android:exported="false">