Der Aktivitätslebenszyklus wurde mit API 25 (7.1.1) geändert.

PhilLab

In meiner Hauptaktivität habe ich ein Dialogfeld, das geöffnet wird, wenn ein Flag in der Absicht gesetzt ist. Wenn der Dialog erstellt wurde, wird er in verworfenonPause()

@Override
public void onPause() {
    super.onPause();
    if (_dialog!= null) {
        _dialog.dismiss();
        _dialog= null;
    }
}

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    if (intentContainsFlag) {
        _dialog = ....;
        _dialog.show();
    }
}

Der Dialog soll geöffnet werden, wenn die Schaltfläche eines ListView-Inhabers gedrückt wird und eine Absichts-URI erstellt wird:

bttn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // The URL scheme is registered in the intent filter
            String intentString = "http://open.example.com/myParameters";
            v.getContext().startActivity(new Intent(Intent.ACTION_VIEW,
                                                    Uri.parse(intentString)));
        }
    });

Das AndroidManigfest enthält:

<activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:launchMode="singleTask"
    android:screenOrientation="landscape" >
    <intent-filter>
      <action android:name="android.intent.action.VIEW" />
      <category android:name="android.intent.category.DEFAULT"/>
      <category android:name="android.intent.category.BROWSABLE"/>
      <data android:scheme="http" android:host="open.example.com" android:pathPattern=".*"/>
      <data android:scheme="https" android:host="open.example.com" android:pathPattern=".*"/>
    </intent-filter>
....

Die SDK-Versionen sind auf eingestellt

minSdkVersion = 19
targetSdkVersion= 22
compileSdkVersion = 23
buildToolsVersion = 23

Unter Android <7.1.1 funktioniert alles wie erwartet: onNewIntent()wird aufgerufen und der Dialog ist sichtbar.

Aber am 7.1.1. Geräte, auf denen die MainActivity onNewIntentaufgerufen wird, dann direkt danach onPauseund onResume. Dies bedeutet, dass sich die Aktivität selbst öffnet / in den Vordergrund tritt, der Dialog jedoch sofort geschlossen wurde.

Eine mögliche Problemumgehung besteht darin, den Dialog zu schließen, onStop()aber ich verstehe nicht, warum dies unter Android 7.1.1 geschieht. Wurde im Lebenszyklus etwas geändert ?

Towfik Alrazihi

Aber am 7.1.1. Geräte, bei denen der onNewIntent der MainActivity aufgerufen wird, dann direkt danach onPause und onResume. Dies bedeutet, dass sich die Aktivität von selbst öffnet / in den Vordergrund tritt, der Dialog jedoch sofort geschlossen wurde.

Das Android-Framework kann Ihre Aktivitäten jedes Mal zerstören, wenn sie sich im Hintergrund oder im Backstack befinden. Sie sollten Ihre Aktivitäten so schreiben, dass sie sich in diesem Fall korrekt verhalten. Schau dir das an :

Behalten Sie keine Aktivitäten im Menü "Entwickleroptionen" bei. Wenn diese Option aktiviert ist, zerstört das Android-Betriebssystem eine Aktivität, sobald sie gestoppt wird. Es soll Entwicklern beim Debuggen ihrer Apps helfen. Beispielsweise kann der Fall simuliert werden, dass Android eine Aktivität im Hintergrund aufgrund von Speicherdruck beendet. Bei normaler Verwendung wird nicht empfohlen, diese Option zu aktivieren, da dies zu unerwarteten Problemen in den Apps führen kann, z. B. Einfrieren, erzwungenes Schließen und Neustarten.

Ihr Dialog selbst bewirkt, dass Ihre Aktivität angehalten und dann geschlossen wird.

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

APP stürzte ab, nachdem API 25 auf 26 geändert wurde Verursacht durch: java.lang.UnsupportedOperationException: Konvertieren in Dimension nicht möglich: type=0x1

Sichtbarkeit der Aktivitätsanzeige wird nicht geändert, nachdem der Wert der Variablen geändert wurde, die mit animierenden Requisiten verbunden ist

Der $ localStorage-Wert wurde mit Fabric js geändert

Benachrichtigung eines Kunden per E-Mail, wenn der Bestellstatus in "Versand mit BigCommerce API" geändert wurde

Fehler beim Einbetten der Eingabeform: Es wurde erwartet, dass die Einbettung_1_Eingabe die Form (25,) hat, aber das Array mit der Form (1,) erhalten hat.

_curses.error: addwstr () hat ERR zurückgegeben, wenn nlines bei der newwin-Methode auf 1 geändert wurde

Der Dropwizard-REST-API-Server wurde mit Code 1 beendet

versehentlich geänderte Zeile mit der Endung git, kann jetzt nicht mehr geändert werden, da nichts geändert wurde

Angular7 + REDUX: Fehler: "ExpressionChangedAfterItHasBeenCheckedError: Der Ausdruck wurde geändert, nachdem er überprüft wurde

Die Navigationsleiste mit der Seitenleistenposition wurde korrigiert, wenn die Fenstergröße geändert wurde

2 Aktivitäten werden benachrichtigt, wenn der GPS-Status geändert wurde

Das Layout der Django-Administrationsseite wurde mit der neuen Version geändert

Travis sammelt ... Der Befehl "pytest" wurde mit 1 . beendet

Der Thread wurde mit Code 1 beendet: Join() und Detach()

Der Anwendungsstil wurde nach dem Upgrade auf supportlib:v7 geändert

Java JDK 8 IndexedPropertyDescriptor wurde seit JDK 7 mit List-Objekt geändert

Problem mit Objekt, das nach der Supertest-Antwort in verschachtelten for-Schleifen geändert wurde

Die Farbe der Android-Benachrichtigungsleiste wurde zusammen mit dem Text in Weiß geändert

CSS-Hintergrundstile funktionieren nicht mehr, nachdem der Hintergrund mit JavaScript geändert wurde

phpunit + symfony Der Fehlerbehandler wurde geändert

Der Variablenwert wurde in nodeJS unerwartet geändert

Wie erkennen wir, ob mit der API v0 oder v1 eine Schattenwurzel erstellt wurde?

Der Befehl "dotnet bundle" wurde mit Code 1 - VS 2017 Publish ASP.NET Core Web API beendet

React-Skript funktioniert nicht mehr, nachdem der API-Aufruf geändert wurde

Der int-Wert, der in einer Aktivität festgelegt wurde, kann nicht von einer anderen geändert werden

Laufzeitfehler mit networkx: Wörterbuch wurde während der Iteration geändert, während ein neuronales Gasskript ausgeführt wurde

Aktivitäten mit Fragmenten werden beim Öffnen der Tastatur nicht in der Größe geändert

Der Prozess wurde mit dem Exit-Code 1 beendet, während die Schriftart abgerufen wurde

Warum wurde 1 << 31 geändert, um in C ++ 14 implementiert zu werden?

TOP Liste

  1. 1

    So legen Sie mit dem Interface Builder unterschiedliche führende Speicherplätze für unterschiedliche Geräte fest

  2. 2

    Wie konvertiere ich einen Vektor von Bytes (u8) in eine Zeichenfolge?

  3. 3

    Wie kann ich in SCSS mehrere Klassen zu einer einzigen kombinieren?

  4. 4

    Eclipse Oxygen - Projekte verschwinden

  5. 5

    Wie konvertiert man einen Datenrahmen im langen Format in eine Liste mit einem geeigneten Format?

  6. 6

    Wie kann ich den Kaskadenmodus global einstellen?

  7. 7

    Wie erstelle ich einen neuen übergeordneten Knoten außerhalb der .ref (/ path) in der Firebase-Echtzeitdatenbank mithilfe von Cloud-Funktionen (Typescript)?

  8. 8

    So erhalten Sie eine gleichmäßige Höhe für alle Eingabefelder

  9. 9

    Python: Spalten mit demselben Namen zusammenführen, wobei der Mindestwert beibehalten wird

  10. 10

    Speichern Sie ein MPAndroidChart-Diagramm in einem Bild, ohne es in einer Aktivität anzuzeigen

  11. 11

    Gruppieren Sie Datenrahmenspalten nach ihrem Datum (die Spaltentitel enthalten) und fassen Sie die Instanzen von Einsen und Nullen in R . zusammen

  12. 12

    ElasticSearch BulkShardRequest ist aufgrund von org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor fehlgeschlagen

  13. 13

    Tic Tac Toe-Spiel im React-Reset-Button funktioniert nicht

  14. 14

    Tomcat - Leiten Sie den alten Kontextstamm zum neuen Kontextstamm um

  15. 15

    Wie wählt man Unterschiede mit drei Tabellen aus?

  16. 16

    Ärgerliches Problem mit yaml, das ich nicht lösen kann

  17. 17

    Wie kann ich meine Tabelle abfragen, um sie in mySQL nach 2 Feldern zu gruppieren?

  18. 18

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  19. 19

    Fügen Sie eine weitere Schaltfläche zu gwt Suggest Box hinzu

  20. 20

    Modbus Python Schneider PM5300

  21. 21

    Wie kann eine gleichmäßige Lastverteilung in ElasticSearch mit Indizes mit unterschiedlicher Anzahl von Shards erreicht werden?

heißlabel

Archiv