Как сделать, чтобы что-то произошло в моем приложении для Windows Phone 7 только один раз? - PullRequest
1 голос
/ 16 января 2012

Мне нужно сделать что-то только один раз (в моем случае создание экземпляра класса). Самое близкое, что я могу найти, это поместить его в обработчик событий PhoneApplicationPage_Loaded или в начало MainPage.xaml. Но это не работает для меня, потому что у меня есть другие страницы в моем приложении, поэтому, если я перехожу с другой страницы обратно на MainPage, он снова выполняет этот код.

Спасибо, Дэвид

Ответы [ 2 ]

3 голосов
/ 16 января 2012

Когда вы создаете новый проект, вы найдете файл App.xaml.cs, добавленный в ваш проект.Здесь вы можете добавить код, который выполняется в различные моменты жизненного цикла вашего приложения.Вы можете добавить код к методу, который обрабатывает событие Launching:

// Code to execute when the application is launching (eg, from Start)
// This code will not execute when the application is reactivated
private void Application_Launching(object sender, LaunchingEventArgs e)
{
   // your code goes here
}

Этот код будет выполнен только один раз при запуске приложения.

1 голос
/ 16 января 2012

То, что вам нужно (я полагаю) - это одноэлементный класс:

public class Singleton
{
    private static Singleton instance = new Singleton();

    private Singleton()
    {
    }

    public static Singleton GetInstance()
    {
        return instance;
    }
}

Теперь вызов Singleton.GetInstance() из любого места гарантирует, что вы будете получать один и тот же экземпляр каждый раз.

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