Tombstonning不适用于wp8

时间:2013-12-23 16:26:00

标签: c# windows-phone-8 windows-phone tombstoning

我正在构建一个MVVM Windows Phone 8应用程序。

我读过这篇文章试图解决墓碑问题:http://www.scottlogic.com/blog/2011/10/03/a-windows-phone-7-1-mango-mvvm-tombstoning-example.html

此示例在MVVM应用程序上实现Tombstonning。该应用程序在列表框中生成Twitter提要。

我更改了此示例的一些代码行,因为它处理旧的twitter api,但是当我运行应用程序,关闭它或激活Win或搜索按钮,然后重新启动它时,页面状态不是同样的。

以下是我在视图模型中更改以模拟新的Twitter Feed:

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
            });
        }

但是当我关闭我的应用程序并重新启动它时,状态是不一样的,例如滚动器位置与我离开应用程序时的位置不同,尽管此示例中有一个方法可以记住滚动位置清单。

你知道为什么墓碑不能正常工作吗?

1 个答案:

答案 0 :(得分:1)

关闭与墓碑无关。

当您按手机上的“赢”或“搜索”按钮时,会发生墓碑/停用。您的应用程序变为非活动状态,主屏幕或搜索应用程序(或任何其他,这只是一个示例)变为活动状态。您的应用程序会进入休眠或逻辑删除状态,具体取决于许多内容。

当您按下时,活动应用关闭,先前活动的应用再次变为活动状态。这叫做激活。

当激活发生时,您的应用程序可能会从休眠状态恢复(一切都保存在内存中,应用程序只是暂停状态)或从逻辑删除状态(系统“重新启动”应用程序并恢复导航堆栈和当前页面,开发人员负责恢复所有其他状态 - 变量,输入数据等)。

所以,不同之处在于,逻辑删除的应用程序不能保持所有状态,这是开发人员的任务。

MSDN about Windows Phone App Lifecycle

上有一份很好的文件

您可以使用本文与示例 - WP7 Application Lifecycle and Tombstoning

了解其工作原理