ios - 位置跟踪应用程序在几分钟后在后台暂停

标签 ios background xamarin.ios xamarin cllocationmanager

我尝试创建一个位置跟踪应用程序。 应用应在后台运行。因此,我打开属性“启用后台模式”、“位置更新”并将参数“NSLocationAlwaysUsageDescription”添加到源。

在 ios7 上应用程序工作正常,但在 ios8 上几分钟后它在后台暂停(应用程序应该如何工作:每次收到新位置时我都会发送一个请求,如果我能在服务器上看到这个请求,这意味着应用程序正在运行)。

我下载了具有定位功能的 xamarin.mobile 组件,并使用它代替我的类进行地理定位。应用程序也会在后台暂停。

我创建了具有相同功能的 Objective-C 应用程序,并在同一台设备上对其进行了测试。结果 - 应用运行良好(如预期)。

所以,也许应用仍需要一些设置,或者我遗漏了什么?

public class LocationUpdatedEventArgs : EventArgs
{
    CLLocation location;

    public LocationUpdatedEventArgs(CLLocation location)
    {
        this.location = location;
    }

    public CLLocation Location
    {
        get { return location; }
    }
}

protected CLLocationManager locMgr;
public event EventHandler<LocationUpdatedEventArgs> LocationUpdated = delegate { };
public GeoLocationService_iOS()
    {
        this.locMgr = new CLLocationManager();
        LocationUpdated += SaveLocation;

        locMgr.AuthorizationChanged += (object sender, CLAuthorizationChangedEventArgs e) =>
        {
            //CheckStatus();
        };

        if (locMgr.RespondsToSelector(new Selector("requestAlwaysAuthorization")))
        {
            locMgr.RequestAlwaysAuthorization();
        }

        locMgr.DistanceFilter = 1;
        locMgr.DesiredAccuracy = CLLocation.AccuracyBest;

        locMgr.LocationsUpdated += (object sender, CLLocationsUpdatedEventArgs e) =>
        {
            // fire our custom Location Updated event
            this.LocationUpdated(this, new LocationUpdatedEventArgs(e.Locations[e.Locations.Length - 1]));
        };

        locMgr.StartUpdatingLocation();
    }

    public void SaveLocation(object sender, LocationUpdatedEventArgs e)
    {
        SendLoc();
    }            

最佳答案

添加

locMgr.PausesLocationUpdatesAutomatically = false;

解决了我的问题。

关于ios - 位置跟踪应用程序在几分钟后在后台暂停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26999780/

相关文章:

ios - 如何访问另一个类中的变量并更改其值

ios - Swift/iAd bannerView/如何设置位置

android - 在Dart中从云中解析嵌套的JSON但出现类型错误

android - 而循环 : Change Background color

ios - 如何更改 UISearchController 中文本字段的背景颜色?

CSS 背景图像缩放以适合屏幕高度

c - 如何通过 C 在后台执行进程并使用 Windows API?

ios - 具有全屏广告的广告网络的 MonoTouch 绑定(bind)?

ios - 是否有 MonoTouch.UIKit.UIKeyboard.BoundsFromNotification 的简单替代品?

c# - 从 NSDictionary 中获取浮点值