结束页面背景工作,WP8,C#

本文关键字:WP8 工作 背景 结束 | 更新日期: 2023-09-27 18:35:28

我不知道这是否可能,但是有没有办法在Windows Phone 8应用程序中"结束"页面?

我的

问题是我在多个页面上使用一个委托(知道我的 xml 何时下载)。它工作正常,但是当我打开一个页面时,她初始化自己,我进入另一个页面(后退按钮),新页面也初始化自己。一切都很好,但上一页还在听代表说话,这确实是一个大问题。所以我需要让上一页(关闭的)进入与她从未打开过的相同状态。

我将感谢任何建议(也许我现在想错了,我不知道,也许页面只需要取消初始化)。

PS:如果有必要,我会发布代码,但我认为不是:)。

好的,这里有一些代码:在课堂上,我有这样的委托正在下载XML:

    public delegate void delDownloadCompleted();
    public static event delDownloadCompleted eventDownloadCompleted;

此类正在下载几个不同的 xml 文件,具体取决于run(int number)方法中的构造函数。

下载完成后,来自xml的所有信息都保存在我的本地列表中,我称之为delegateCompled。 if (eventDownloadCompleted != null) { eventDownloadCompleted(); }

然后我有几个不同的页面。所有页面都用于显示下载的xml中的特定数据。所以在这个特定的页面上,我有当"downloadClass"说它已完成时触发的方法。

XML_DynamicDataChat.delDownloadCompleted delegMetoda = new XML_DynamicDataChat.delDownloadCompleted(inicialiyaceListu);
XML_DynamicDataChat.eventDownloadCompleted += delegMetoda; 

这就是"inicializaceListu"方法:

private void inicialiyaceListu()
        {
            Dispatcher.BeginInvoke(() =>
            {
                model = new datka();
                // object model is just model where i am saving all specific list of informations that i got from xml files.
                chatList9 = model.getChat(1);
                gui_listNovinky.ItemsSource = chatList9;
                gui_loadingGrid.Visibility = Visibility.Collapsed;
            });
        }

所有这些都工作正常,但是当我返回(使用后退按钮)并使用其他下载的 xml 中的其他特定信息打开其他特定页面时,上一页仍在侦听委托,并且每次我完成下载 xml 时仍然会触发inicialiyaceListu()方法。

所以我需要说上一页:"嘿页面,你现在已经关闭了!你能把****关起来,停止工作吗?!?"

我认为每个页面的特定委托可以解决这个问题,但这不是正确的编程方式。

结束页面背景工作,WP8,C#

我解决得很好,很容易。这是一个非常简单的解决方案。我刚刚创建了布尔变量,并在返回时将其设置为 false。在inicializaceListu()中,如果它是真的,我有条件。如果是真的,那就做那些东西,而假的什么都不做。