Запустите свежий экземпляр приложения, предотвратите захоронение - PullRequest
0 голосов
/ 24 ноября 2011

Я разработал приложение, которое отлично работает на Windows Phone.Природа приложения такова, что оно не должно поддерживать надгробия.То есть каждый раз можно запускать новый экземпляр.

Вопрос в том, как мне предотвратить захоронение моего приложения?Например, если пользователь нажимает кнопку «Пуск», находясь в приложении, мне нужно прекратить работу приложения, чтобы при нажатии клавиши «Назад» приложение запускалось с новым экземпляром.

Любая помощь будет принята с благодарностью!:)

Ответы [ 2 ]

1 голос
/ 24 ноября 2011

Вы должны быть в состоянии сделать это из события Application_Activation.В preMango вы обычно делаете что-то вроде этого:

    private void Application_Activated(object sender, ActivatedEventArgs e) 
    { 
        var state = PhoneApplicationService.Current.State; 
        if (state.ContainsKey("YourKeyName")) 
        { 
            // Typically rehydrate. Clear app state
        } 
    }

В Mango вам может понадобиться также использовать свойство IsApplicationInstancePreserved.Это свойство указывает, когда данные были сохранены для вас, и вам не нужно загружать их.См. http://msdn.microsoft.com/en-us/library/microsoft.phone.shell.activatedeventargs.isapplicationinstancepreserved(v=vs.92).aspx.

Так что вам нужно добавить что-то вроде этого:

if (e.IsApplicationInstancePreserved) 
   {
       // Clear State
   } 
1 голос
/ 24 ноября 2011

На каждой странице у вас есть OnNavigatedTo (или вы можете переопределить PhoneApplicationPage), просто установите переменную, в которой каждая проверка страницы возвращает на исходную страницу. Оттуда вы можете просто перезагрузить, как будто это было начало.

Приносим извинения, если имена функций не на 100%, печатать это без Visual Studio Доступно.

Немного логики .. В App.xaml.cs

public static bool Activated = false;

ApplicationActivated()
{
  Activated = true;
}

на каждой странице:

 public override void OnNavigatedTo(object sender, NavigationEventArgs e)
    {
       base.OnNavigatedTo(sender,e);
        if (App.Activated)
              if (NavigationService.CanGoBack){
                     NavigationService.GoBack();
                     return; //remember that GoBack() is async and will not cause this function to end early! you must return

              }
              else { App.Activated = false; } 

        }

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