0

Web API からデータを取得して表示し、5 秒ごとにデータを継続的に更新するアプリケーションを作成しようとしていますが、これを行うための最良の方法がわかりません。

私の最初の考えは、この質問で行われたことのようなことをする単純なタイマーでしたが、それを台無しにして、そうすべきでないときにタイマーをバックグラウンドで実行し続けることが心配です(ユーザーがページを離れます)。実際には起こらないことを心配していますか?これは私がやろうとしていることを実行する良い方法ですか、それともより効率的/安全な方法はありますか?

4

1 に答える 1

2

アプリの外に移動するとタイマーは継続しませんが、アプリ内の別のページに移動するとタイマーは継続します。次の方法で防ぐことができます。

    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
    }

さらに、ほとんど変更されていないデータを確認するだけの場合は、プッシュ通知の使用を検討してください。

于 2012-01-12T23:51:29.733 に答える