2016-07-25 3 views
0

Gibt es eine Möglichkeit, etwas im Code nur zu tun, wenn die Anwendung direkt von Google Play (oder automatisch) aktualisiert wurde?Wie Sie herausfinden, dass die Anwendung aktualisiert wurde

ist Meine Aufgabe Benutzer über einige Bedingungen der Privatsphäre Polizei fragt nur nach der Installation oder nach jedem

Aktualisierung
+0

Sie können es tun, indem Sie einen Paket ersetzten Empfänger verwenden. Hier ist ein [Beispiel] (http://stackoverflow.com/questions/4513825/how-to-correctly-filter-package-replaced-broadcast) –

Antwort

3

Sie können den Empfänger android.intent.action.PACKAGE_REPLACED verwenden, um zu erkennen, wenn Ihre App aktualisiert wird. Nach doc:

Broadcast-Aktion: Eine neue Version eines Anwendungspakets hat installiert wurde, eine vorhandene Version ersetzt, die zuvor war installiert. Die Daten enthalten den Namen des Pakets.

AndroidMenifest.xml: Registrieren eines Empfängers mit android.intent.action.PACKAGE_REPLACED Aktion.

<receiver android:name=".OnUpgradeReceiver"> 
    <intent-filter> 
    <action android:name="android.intent.action.PACKAGE_REPLACED" /> 
    <data android:scheme="package" android:path="your.app.package" /> 
    </intent-filter> 
</receive> 

AppUpdateReceiver.java: Rundfunkempfänger erstellen, die ausgelöst wird, wenn die App aktualisiert wird. Suchen Sie nach Ihrem Versionscode und führen Sie die spezifische Aktion aus.

public class AppUpdateReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(final Context context, final Intent intent) { 

     switch (BuildConfig.VERSION_CODE){ 
      case 1: 
       //DO something if the version code is 1. 
       break; 
      case 2: 
       //DO something if the version code is 2. 
       break; 
      ... 
      ... 
     } 
    } 
} 
+0

das sieht gut aus, aber Passy vorgeschlagen (meiner Meinung nach) einfachere Lösung. Was ist dein Vorteil? –

+0

Sie müssen nicht nach der App-Version suchen und prüfen, ob die App jedes Mal aktualisiert wurde. Das System ruft Ihre App immer dann auf, wenn Ihre App aktualisiert wird. –

+0

Ja, hört sich gut an, danke! –

1

einfach überprüfen, ob BuildConfig.VERSION_CODE geändert hat. Speichern Sie dazu den Versionscode in SharedPreferences. Application#onCreate() könnte ein guter Punkt dafür sein.

+0

Entschuldigung, Ihre Lösung ist gut und einfach, aber die Art und Weise von Keval Patel sieht besser aus . Ich stimme zu Ihrer Frage, aber ich akzeptierte eine Antwort von Keval –

0

Sie können den Code einfach aktualisieren (um dem Benutzer beim Start Richtlinien anzuzeigen) und wenn der Benutzer die App das nächste Mal starten würde, sollte es erscheinen. Vielleicht behalten Sie einen Präferenzwert, um sicherzustellen, dass es nur einmal passiert.

Alternativ können Sie bei jedem Start auch den aktuellen Versionscode lesen und ihn als Voreinstellung speichern. Sobald er aktualisiert wird, können Sie die Richtlinie anzeigen und den gespeicherten Wert aktualisieren.

0

Speichern Sie die BuildConfig.VERSION_CODE in geteilten Präferenz. Jedes Mal, wenn Benutzer die App öffnen, rufen Sie den Versionscode ab und vergleichen Sie mit den gespeicherten Daten.

+0

Passy bereits vorgeschlagen diese Variante, nicht duplizieren –

Verwandte Themen