在我的Android应用程序中,我从localStorage
检索数据并显示在listview
中。现在,我希望它即使在应用程序关闭的情况下也能从Web服务中获取更新的数据。
我正在使用webchromeclient
。我尝试过服务,但它只从应用程序开始,当应用程序关闭或销毁时,我无法与localStorage
交互,我试图在警报上触发服务
代码:
@Override
public void onReceive(Context context, Intent intent) {
WakefulIntentService.acquireStaticLock(context);
context.startService(new Intent(context, AppService.class));
}
例如,如果我需要每3秒运行一次服务,请使用以下代码:
Calendar cal = Calendar.getInstance();
Intent intent = new Intent(this, LockService.class);
PendingIntent pintent = PendingIntent.getService(this, 0, intent, 0);
AlarmManager alarm = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarm.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 3*1000, pintent);
当手机重新启动时,终端需要BroadcastReceiver,如以下代码:
public class MyScheduleReceiver extends BroadcastReceiver {
private static final long REPEAT_TIME = 1000 * 60;
@Override
public void onReceive(Context context, Intent intent) {
AlarmManager service = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, MyStartServiceReceiver.class);
PendingIntent pending = PendingIntent.getBroadcast(context, 0, i,
PendingIntent.FLAG_CANCEL_CURRENT);
Calendar cal = Calendar.getInstance();
cal.add(Calendar.SECOND, 60);
service.setInexactRepeating(AlarmManager.RTC_WAKEUP,
cal.getTimeInMillis(), REPEAT_TIME, pending);
}
}
和帮助类:
public class MyStartServiceReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent service = new Intent(context, LocalWordService.class);
context.startService(service);
}
}
并要求许可
并在清单上定义服务和BroadcastReceiver