0

从 android Oreo 我们不能使用一些隐式广播接收器(网络状态等)。取而代之的是,我们可以使用作业调度程序或调度程序。但在 I/O 2018 中,谷歌引入了一个名为 workmanager 的新库。

但是这里出现了一个问题,我如何在工作管理器中处理系统事件(通话接收、网络状态更改、GPS 开/关等)?或者我如何在特定时间安排我的工作(不使用时间计算)?

如果有人对此有任何想法,请告诉我。提前致谢。

4

1 回答 1

0

您可以简单地使用 LocationService 类中的 setInterval 方法进行归档。

按照指南使用 FusedLocaation 创建侦听器,这可以为您提供更好的位置逻辑结果。 https://developers.google.com/android/reference/com/google/android/gms/location/FusedLocationProviderClient

LocationRequest locationRequest = LocationRequest.create();
            locationRequest.setInterval(5000); 
            // in milliseconds in you case change into 3600000
            locationRequest.setFastestInterval(1000);
            locationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);

然后用回调启动一个fusedLocation

       mFusedLocationClient = LocationServices.getFusedLocationProviderClient(locationActivity);                
       mFusedLocationClient.requestLocationUpdates(locationRequest, new LocationCallback() {
            @Override
            public void onLocationResult(LocationResult locationResult) {
                super.onLocationResult(locationResult);
            }

            @Override
            public void onLocationAvailability(LocationAvailability locationAvailability) {
                super.onLocationAvailability(locationAvailability);
            }
        },null);

谢谢

于 2018-09-20T18:41:26.933 回答