替代/更换Firebase Jobdispatcher

时间:2018-04-17 18:58:18

标签: android firebase android-syncadapter

最近回到了一些Android开发者,自从Nougat看起来Firebase JobDispatcher似乎不可能每15分钟触发一次,这在我们的用例中是不适用的,我们需要能够推动&每分钟至少一次将数据提取到我们的网络服务。

我应该/可以使用什么?我还没有能够找到一个可靠的替代品,一直在研究SyncAdapter,IntentService以及我发现它们在这个用例中不是最适用的。

提前致谢。

1 个答案:

答案 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" />