0

MVVM Windows Phone 8 アプリケーションを構築しています。

tombstonning の問題を解決するために、この投稿を読みました

この例では、MVVM アプリケーションに廃棄処理を実装します。アプリケーションは、リストボックスに Twitter フィードを生成します。

古い twitter api を扱っているため、この例のコードのいくつかの行を変更しましたが、アプリケーションを実行して閉じるか、Win ボタンまたは検索ボタンをアクティブにしてから再度起動すると、ページの状態は同じではありません。

新しい Twitter フィードをシミュレートするためにビュー モデルで変更したものは次のとおりです。

j = new List<FeedItemViewModel>();
    j.Add(new FeedItemViewModel
    {
        Author = "Auth",
        Title = "Sample1",
        Id = 1
    });


    j.Add(new FeedItemViewModel
    {
        Author = "Auth",
        Title = "Sample2",
        Id = 2
    });
    j.Add(new FeedItemViewModel
    {
        Author = "Auth",
        Title = "Sample3",
        Id = 3
    });
    j.Add(new FeedItemViewModel
    {
        Author = "Auth",
        Title = "Sample4",
        Id = 4
    });
    j.Add(new FeedItemViewModel
    {
        Author = "Auth",
        Title = "Sample5",
        Id = 5
    });
    foreach (FeedItemViewModel t in j)
    {

        this._feedItems.Add(t);

    }
    public void Update()
        {
            this._feedItems.Add(new FeedItemViewModel
            {
                Author = "_Auth",
                Title = "_Sample",
                Id = 99
            });
        }

しかし、アプリケーションを閉じて再起動すると、状態が同じではありません。たとえば、このサンプルには、リストのスクロール位置を記憶する方法がありますが、スクローラーの位置はアプリケーションを終了したときと同じではありません。

トゥームストンニングが適切に機能しない理由を知っていますか?

4

1 に答える 1

1

クロージングは​​トゥームストーンとは何の関係もありません。

電話の「Win」または「検索」ボタンを押すと、廃棄/非アクティブ化が発生します。あなたのアプリが非アクティブになり、ホーム画面または検索アプリ (またはその他、単なる例) がアクティブになります。アプリは、さまざまな状況に応じて休止状態または廃棄状態になります。

押し戻すと、アクティブなアプリが閉じ、以前アクティブだったアプリが再びアクティブになります。それを活性化といいます。

アクティブ化が行われると、アプリは休止状態 (すべてがメモリに保持され、アプリは一時停止されている) から復元されるか、廃棄状態 (システムがアプリを「再起動」してナビゲーション スタックと現在のページを復元し、開発者は他のすべての状態を復元する責任があります) から復元される可能性があります。 - 変数、入力データなど)。

したがって、違いは、トゥームストーン化されたアプリはすべての状態を内部に保持するわけではなく、それは開発者の仕事です。

MSDN には、Windows Phone アプリのライフサイクルに関する適切なドキュメントがあります。

この記事と例を使用して、それがどのように機能するかを学ぶことができます - WP7 Application Lifecycle and Tombstoning

于 2013-12-23T16:38:17.310 に答える