8
votes

For security reasons, I need to log out the users when they exit the app and show login screen when they return back.

In Windows Phone 8 and Windows Phone 8.1 Silverlight there are Application_Deactivated and Application_Closing methods on the App class (or methods OnClose, OnDeactivate to override in Caliburn.Micro).

The only interesting events seems to be Suspend and Resume, but they do not called when I exit the app using the Start button and get back using the Back button or launching the app from the list.

What are the alternatives for Windows Phone 8.1 XAML?

(Setting ActivationPolicy="Replace" would solve half of the problem but I guess this is not possible, when WMAppManifest.xml is not event a part of a Windows Phone 8.1 XAML project).

1
The Suspending event will be called just after you navigate away from the app, but not in debug mode. Have you tested it without debugger attached?Romasz
I made it write something to ApplicationData.Current.LocalSettings in Suspending and read on a page, built it in release mode, deploy to a phone, disconnected the cable, run and exited. Not workingIgor Kulman
Could you repeat that test, but first - restart the phone and reinstall the app (build in Release, with no debugger attached)? That's partially a suggestion, and partially gathering info on a problem I am facing. Thanks.yasen
Have you considered a Universal App?Peter Ritchie
Hmm, as I'm testing it's working as I've said - can you check my example. Note also that when Suspending is called, before that OnNavigatedFrom is called, but when you Resume, OnNavigatedTo is not called.Romasz

1 Answers

15
votes

The Suspending event will be called just after you navigate away from the app, but not in debug mode. I've build a simple app modyfing LocalSettings upon Suspending event and then acquiring information when Resuming.

You are probably aware, but for the sake of completeness of the answer - some remarks:

  • before Suspending event, the OnNavigatedFrom event is being called, but when you Resume, the OnNavigatedTo is not called - reference:

    Note On Windows Phone, OnNavigatedFrom() is called when the app is suspended. OnNavigatedTo() is not called when the app is resumed.

  • to test Suspending/Resuming with debugger, use Lifecycle events in Debug location tab - more info

  • reference to Application lifecycle in Windows Runtime apps