Android 服务中的计时器不工作
我正在做一个应用程序,我想每3分钟调用一次web服务,当设备未超时时,一切正常。但当它超时时,我想计时器已经停止工作了 解决这个问题的替代方法是什么。我想3分钟的差距无论如何,它没有必要使用定时器,我可以使用任何与定时器的替代 我正在做一个应用程序,我想每3分钟调用一次web服务,当设备未超时时,一切正常。但当它超时时,我想计时器已经停止工作了 首先,这不是一个很好的解决方案。不要让服务一直挂在内存上,只是看着时钟滴答作响 解决这个问题的替代方法是什么 ,与Android 服务中的计时器不工作,android,service,timer,Android,Service,Timer,我正在做一个应用程序,我想每3分钟调用一次web服务,当设备未超时时,一切正常。但当它超时时,我想计时器已经停止工作了 解决这个问题的替代方法是什么。我想3分钟的差距无论如何,它没有必要使用定时器,我可以使用任何与定时器的替代 我正在做一个应用程序,我想每3分钟调用一次web服务,当设备未超时时,一切正常。但当它超时时,我想计时器已经停止工作了 首先,这不是一个很好的解决方案。不要让服务一直挂在内存上,只是看着时钟滴答作响 解决这个问题的替代方法是什么 ,与\u唤醒式警报和/或结合 我正在做一个
\u唤醒
式警报和/或结合
我正在做一个应用程序,我想每3分钟调用一次web服务,当设备未超时时,一切正常。但当它超时时,我想计时器已经停止工作了
首先,这不是一个很好的解决方案。不要让服务一直挂在内存上,只是看着时钟滴答作响
解决这个问题的替代方法是什么
,再加上一个\u唤醒式报警和或。使用重复报警:
private PendingIntent pendingIntent=null;
static Intent i;
public static AlarmManager manager ;
pendingIntent = PendingIntent.getService(con, 0,
intent, 0);
Calendar cal = Calendar.getInstance();
manager = (AlarmManager) con.getSystemService(Context.ALARM_SERVICE);
manager.setRepeating(AlarmManager.RTC_WAKEUP,
cal.getTimeInMillis(), (3*60*1000),
pendingIntent);
使用重复报警:
private PendingIntent pendingIntent=null;
static Intent i;
public static AlarmManager manager ;
pendingIntent = PendingIntent.getService(con, 0,
intent, 0);
Calendar cal = Calendar.getInstance();
manager = (AlarmManager) con.getSystemService(Context.ALARM_SERVICE);
manager.setRepeating(AlarmManager.RTC_WAKEUP,
cal.getTimeInMillis(), (3*60*1000),
pendingIntent);
在你的服务课上
private static boolean isRunning = false;
private Timer timer = new Timer();
@Override
public void onCreate() {
super.onCreate();
Log.i("SyncService", "Service Started.");
int interval = 180000;// 3minutes
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
//your process
}
}, 0, (long) interval);
isRunning = true;
}
希望这能给你一些解决办法。在你的服务课上
private static boolean isRunning = false;
private Timer timer = new Timer();
@Override
public void onCreate() {
super.onCreate();
Log.i("SyncService", "Service Started.");
int interval = 180000;// 3minutes
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
//your process
}
}, 0, (long) interval);
isRunning = true;
}
希望这能为您提供一些解决方案。不要使用AlarmManager
\u WAKEUP
带有服务的报警PendingEvent
。关于使用\u WAKEUP
唤醒的唯一保证是我们使用广播挂起内容
——在这种情况下,AlarmManager
保证我们将保持足够长的唤醒时间,以便onReceive()
完成。不要使用AlarmManager
\u WAKEUP
带有服务的报警pendingEvent
。关于\u WAKEUP
唤醒的唯一保证是我们使用广播pendingent
——在这种情况下,AlarmManager
保证我们将保持足够长的唤醒时间,以便onReceive()
完成。