как запустить мое приложение в знаниях в iPhone?

Как насчет дополнительного метода для DateTime для создания чего-то вроде быстрого интерфейса (те - все право гнева?)

public static class DateTimeTolerance
{
    private static TimeSpan _defaultTolerance = TimeSpan.FromSeconds(10);
    public static void SetDefault(TimeSpan tolerance)
    {
        _defaultTolerance = tolerance;
    }

    public static DateTimeWithin Within(this DateTime dateTime, TimeSpan tolerance)
    {
        return new DateTimeWithin(dateTime, tolerance);
    }

    public static DateTimeWithin Within(this DateTime dateTime)
    {
        return new DateTimeWithin(dateTime, _defaultTolerance);
    }
}

Это полагается на класс, чтобы сохранить состояние и определить пару перегрузок оператора для == и! =:

public class DateTimeWithin
{
    public DateTimeWithin(DateTime dateTime, TimeSpan tolerance)
    {
        DateTime = dateTime;
        Tolerance = tolerance;
    }

    public TimeSpan Tolerance { get; private set; }
    public DateTime DateTime { get; private set; }

    public static bool operator ==(DateTime lhs, DateTimeWithin rhs)
    {
        return (lhs - rhs.DateTime).Duration() <= rhs.Tolerance;
    }

    public static bool operator !=(DateTime lhs, DateTimeWithin rhs)
    {
        return (lhs - rhs.DateTime).Duration() > rhs.Tolerance;
    }

    public static bool operator ==(DateTimeWithin lhs, DateTime rhs)
    {
        return rhs == lhs;
    }

    public static bool operator !=(DateTimeWithin lhs, DateTime rhs)
    {
        return rhs != lhs;
    }
}

Тогда в Вашем коде можно сделать:

DateTime d1 = DateTime.Now;
DateTime d2 = d1 + TimeSpan.FromSeconds(20);

if(d1 == d2.Within(TimeSpan.FromMinutes(1))) {
    // TRUE! Do whatever
}

дополнительный класс также содержит статический допуск по умолчанию так, чтобы можно было установить допуск для целого проекта и использовать В рамках метода без параметров:

DateTimeTolerance.SetDefault(TimeSpan.FromMinutes(1));

if(d1 == d2.Within()) {  // Uses default tolerance
    // TRUE! Do whatever
}

у меня есть несколько модульных тестов, но это было бы немного слишком много кода для вставки здесь.

10
задан Rahul Vyas 21 July 2011 в 07:42
поделиться

4 ответа

Вы можете связаться с людьми, которые сделали это

http://appadvice.com/appnn/2008/10/run- iphone-apps-in-the-background /

Он работает только на телефонах с нарушенным доступом, это еще один способ использования push-уведомлений с наших серверов для задач по времени. Почему бы вам не использовать это, чтобы разбудить приложение, получить GPS, а затем отправить его обратно в спящий режим. Лучше и для батарей.

0
ответ дан 3 December 2019 в 17:59
поделиться

На самом деле служба Apple Push Notification доступна не только нескольким разработчикам. В настоящее время он широко используется.

Взгляните на это:

http://developer.apple.com/IPhone/library/documentation/UIKit/Reference/UIApplication_Class/Reference/Reference.html

В разделе «Регистрация для удаленных уведомлений» указано, как зарегистрироваться для получения push-уведомлений. Другой конец настраивается на портале разработчиков iPhone.

8
ответ дан 3 December 2019 в 17:59
поделиться

Я не думаю, что это разрешено в парадигме программирования iPhone. Операционная система способна запускать фоновые задачи, но обычным приложениям iPhone не разрешено запускать что-либо подобное.

13
ответ дан 3 December 2019 в 17:59
поделиться

Невозможно без джейлбрейка - приложения iphone sdk могут работать только на экране.

1
ответ дан 3 December 2019 в 17:59
поделиться