Лучший способ постоянно обновлять данные в Windows Phone? - PullRequest
0 голосов
/ 13 января 2012

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

Моей первой мыслью был простой таймер, который делал что-то вроде того, что было сделано в в этом вопросе , но я беспокоюсь, что могу испортить его и заставить таймер продолжать работать в фоновом режиме, не должно быть (например, если пользователь покидает страницу). Я беспокоюсь о том, что на самом деле не произойдет? Это хороший способ сделать то, что я пытаюсь сделать, или есть более эффективный / безопасный способ сделать это?

1 Ответ

2 голосов
/ 13 января 2012

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

    System.Windows.Threading.DispatcherTimer dt;

    public MainPage()
    {
        InitializeComponent();
        dt = new System.Windows.Threading.DispatcherTimer();
        dt.Interval = new TimeSpan(0, 0, 0, 0, 1000); // 1000 Milliseconds
        dt.Tick += new EventHandler(dt_Tick);
    }

    protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)
    {
        dt.Stop();
    }

    protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {
        dt.Start();
    }

    void dt_Tick(object sender, EventArgs e)
    {
        listBox1.Items.Add(listBox1.Items.Count + 1); // for testing
    }

    private void PageTitle_Tap(object sender, GestureEventArgs e)
    {
        NavigationService.Navigate(new Uri("/Page1.xaml", UriKind.Relative)); // for testing
    }

Более того, если вы просто проверяете данные, которые в большинстве случаев не изменяются, рассмотрите возможность использования push-уведомлений .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...