最近回到了一些Android开发者,自从Nougat看起来Firebase JobDispatcher似乎不可能每15分钟触发一次,这在我们的用例中是不适用的,我们需要能够推动&每分钟至少一次将数据提取到我们的网络服务。
我应该/可以使用什么?我还没有能够找到一个可靠的替代品,一直在研究SyncAdapter,IntentService以及我发现它们在这个用例中不是最适用的。
提前致谢。
答案 0 :(得分:0)
您可以使用基本服务
public class YourWebService extends Service {
private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
@Override
public void onCreate() {
super.onCreate();
Runnable runnable = new Runnable() {
@Override
public void run() {
//your code here
//web request, data push, something else
}
};
//your code will be executed every 60 seconds
scheduler.scheduleAtFixedRate(runnable, 0, 60, TimeUnit.SECONDS);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
您可以从活动
开始服务 startService(new Intent(YourActivity.this, YourWebService.class));
您必须在manifest.xml中注册您的服务
<service
android:name=".YourWebService" />