2013-02-08 2 views
0

Я работаю над переносом приложения из iOS в WinRT/8 Metro/8 Immersive/Независимо от текущего имени.Windows 8 Metro/Immersive App - Force Terminate

На iOS у нас есть возможность установить Application does not run in background на YES, чтобы заставить приложение фактически уходить, когда пользователь покидает приложение.

Я хотел бы выяснить, как воспроизвести это поведение в WinRT.

  1. Да, я понимаю, что это ненормальное поведение.
  2. Да, я продумал это.
  3. Да, у меня есть очень веская причина для этого.

Я предполагаю, что во время userLeavingApp случае, я бы просто позвонить Application.Current.Exit(), но я не могу показаться, чтобы найти userLeavingApp событие. Я думал об использовании OnSuspending (обрабатывает Me.Suspending) в App.xaml.vb, но это, похоже, не называется достаточно быстро для меня.

Есть ли .NET-эквивалент viewWillDisappear или что-то в этом роде?

Любые идеи? Это важная характеристика безопасности моего приложения, и я бы не хотел испытывать такие трудности на всей платформе из-за такой небольшой проблемы.

Спасибо!

ответ

0

Я не думаю, что ваше приложение пройдет сертификацию, если вы позвоните Application.Current.Exit(). Если вы действительно уверены, что это то, что вы хотите - я думаю, стоит попробовать. Вы можете просто выгрузить все, что использует память/процессор, когда вы выходите.

1

Я на самом деле не вижу Application.Current.Exit(), работающего в OnSuspending; хотя, как вы говорите, приостановление происходит недостаточно быстро для вас (это по дизайну). Для меня исключение тоже не сработало.

Существует Window.VisibilityChanged, и если я выдаю Exit/exception там, он отключит приложение, когда другое приложение вступит в силу. Тем не менее, VisibilityChanged будет срабатывать при других обстоятельствах, поэтому не уверен, что вы могли бы покрыть все сценарии или полагаться на них, не изменяясь. See here для немного больше контекста.

Чтобы эхо @Filip, ответ которого просто появился, вряд ли вы пройдете сертификацию. Вызов Exit() равносилен исключению.