Android - WakeLock - 屏幕锁定时收到PUSH通知的POST位置' d(parse.com)

时间:2016-01-27 12:34:36

标签: android parse-platform locationmanager wakelock android-wake-lock

当屏幕锁定时,我想在 PushReceived 发布 位置。 当屏幕开启时,我的代码可以正常工作。 WakeLock似乎不起作用......

Parse.com 第一次收到 PUSH通知时,屏幕变为开启,我可以看到 GPS 图标 会弹出。并且数据库更新。

但是我第二次获得PUSH notfication时, onLocationCanged 没有被触发,POST永远不会被发送。为什么是这样 ?然而,屏幕亮起,并显示GPS图标。

Evrytime我在这一点设置调试它的工作原理:

"commands": {
    "web": "Microsoft.AspNet.Server.Kestrel"

某种asynch tastk问题maby?

这是我的代码:

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this);

1 个答案:

答案 0 :(得分:0)

删除它:

        //Stop receiving LOCATION after 5 sec
        final Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                locationManager.removeUpdates(PushNotificationReceiver.this);

                //WakeLock release
                wakeLock.release();
            }
        }, 5000);

并添加

locationManager.removeUpdates(PushNotificationReceiver.this);
wakeLock.release();

onLocationChanged 中,如下所示:

@Override
public void onLocationChanged(Location location) {

    currentLat = location.getLatitude() + "";
    currentLng = location.getLongitude() + "";
    currentDate = new Date();
    username = tabFragment3.userEmail;

    postLocation(mainActivity.getAppContext(), currentLat, currentLng, currentDate.toString(), username);
    locationManager.removeUpdates(PushNotificationReceiver.this);
    wakeLock.release();
}