дочерние элементы управления исчезают при запуске уже запущенного приложения

немного странно... когда мое приложение работает, я добавляю настраиваемый элемент управления в StackPanel одним нажатием кнопки, например...

void btnAddPlayer_Click(object sender, EventArgs e)
{
   PlayerControl sbItem = new PlayerControl();
   ctlPanel.Children.Add(sbItem);
}

(ctlPanel — это StackPanel PlayerControl — это стандартный элемент управления, унаследованный от UserControl)

Так что я добавляю один или два, не проблема... если я выполняю многозадачность на телефоне в другом приложении, затем многозадачность обратно в мое приложение, не проблема... однако, если я выполняю многозадачность ( или нажмите кнопку Windows Phone), а затем вместо многозадачности я просто нажимаю на значок (как будто я снова запускаю приложение), он перезагружает мое приложение, но без каких-либо PlayerControl в StackPanel... и во время отладки он не вызывает метод InitializeComponents() в конструкторе страниц (конечно, это может быть связано с тем, что он может не отлаживать его, когда вы запускаете его прямо из меню)

Кто-нибудь знает, есть ли способ разрешить запуск приложения только один раз (и не перезапускать его, если пользователь снова запускает приложение)????


person Wacka    schedule 17.02.2012    source источник


Ответы (1)


Это не работает таким образом. Вы можете сохранить «состояние» вашего приложения и загрузить его при запуске приложения. Посмотрите на «Tombstoneing» для телефонов с Windows. Например, вы можете сохранить в локальном хранилище текущий идентификатор экрана и любые другие необходимые данные, и когда вы запускаете приложение, если у вас есть что-то в локальном хранилище, вы загружаете этот экран, иначе вы начинаете со своей домашней страницы.

person AD.Net    schedule 17.02.2012
comment
а, хорошо .. так что в основном я должен сохранять состояние каждый раз, когда я что-то делаю? в противном случае есть ли событие, сообщающее мне, что приложение перезапускается? - person Wacka; 18.02.2012
comment
Да, я уверен, что есть события, у меня в голове есть такие события, как Application_Deactivated, Application_Activated, Application_Launching и т. д. - person AD.Net; 18.02.2012