Beim Schließen der App und dem anschließenden erneuten Öffnen wird weiterhin dieselbe Instanz von Window in MAUI verwendC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Beim Schließen der App und dem anschließenden erneuten Öffnen wird weiterhin dieselbe Instanz von Window in MAUI verwend

Post by Anonymous »

Wenn ich die App starte und dann zu einer anderen Seite navigiere, dann zum Aufgabenwechsler gehe, die App zum Schließen bewege und dann wieder öffne, kann ich sehen, dass sie immer noch dieselbe Instanz des Fensters verwendet. Die App wird erneut geöffnet und auf die Seite geladen, auf der sie sich vor dem Schließen befand. Ich versuche zu verstehen, was dieses Verhalten verursachen könnte.
Um einen besseren Kontext zu schaffen, hier mein Code:
Wie Sie sehen können, wird die Variable _window beibehalten.

Code: Select all

public App(IServiceProvider ServiceProvider, ILogger logger)
{
_logger = logger;
_shell = ServiceProvider.GetService() ?? throw new Exception();
InitializeComponent();
}

protected override Window CreateWindow(IActivationState? activationState)
{
if (_window != null)
{
_logger.WriteLog("CreateWindow: Window is not null");
return _window;
}
else
{
_logger.WriteLog("New Window");
_window = new(_shell);
}
return _window;
}
Wenn ich jetzt die App schließe und sie dann erneut öffne, kann ich anhand der Protokolle erkennen, dass das Fenster nicht null ist. Mir gefällt dieses Verhalten, das es der App ermöglicht, die Seite neu zu laden, auf der sie sich vor dem Schließen befand.
Dann habe ich eine neue App mit der gleichen Logik wie oben erstellt. Aber die neue App zeigt dieses Verhalten nicht, sobald ich die App schließe und dann wieder öffne. Es wird ständig versucht, ein neues Fenster zu erstellen.
Was habe ich übersehen? Wie kann die alte Instanz der App-Klasse nach dem Schließen der App erhalten bleiben?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post