Ich suche den neuen Backup-API, die verfügbar seit Android 2.2, in Verwendung, sondern müssen, um die Rückwärtskompatibilität (bis 1,5 um genau zu sein).rückwärts-kompatible Backupagent
Der docs Zustand:
Der Backup-Service und die APIs, die Sie nur auf Geräte verfügbar verwenden müssen laufen API Stufe 8 (Android 2.2) oder mehr, so dass Sie auch Ihr Android setzen sollen minSdkVersion Attribut "8". Wenn Sie jedoch implementieren richtige Abwärtskompatibilität in Ihrer Anwendung, können Sie diese Funktion für Geräte mit API Stufe 8 oder höher unterstützen, während kompatibel bleiben mit älteren Geräten.
ich in der Tat gegen die Ebene bauen 8 targetSdkVersion
mit Level 3 minSdkVersion
und versuchen, eine Wrapper-Klasse zu verwenden (mit Reflexion), um das Problem zu überwinden, die die Anwendung nicht ausgeführt werden, wenn Sie eine Klasse implementieren, die eine nicht vorhandene Klasse erweitert.
Hier ist das Problem: Da wir selbst keine Aufrufe an die BackupHelper
Klasse machen, können wir nicht vorab überprüfen, ob die Klasse wirklich existiert. (Wie in der Android Rückwärtskompatibilität Dokumentation mit einem checkAvailable()
Verfahren erläutert.) Die Klasse wird daher instanziiert und zu einem BackupAgent
gegossen werden. Aber da wir Reflexion verwenden, ist es nicht wirklich Backupagent außer Kraft setzen und eine Ausnahme auftritt, während der Laufzeit, wenn die Sicherung angefordert wird:
java.lang.RuntimeException: Unable to create BackupAgent org.transdroid.service.BackupAgent: java.lang.ClassCastException: org.transdroid.service.BackupAgent
Hier mein Ansatz ist auf eine rückwärtskompatibel BackupAgent
: http://code.google.com/p/transdroid/source/browse/#svn/trunk/src/org/transdroid/service wo die BackupAgent.java das ist ‚normaler‘ BackupAgentHelper erstreckender Klasse und BackupAgentHelperWrapper ist die Reflexion basierende Hüllklasse.
Jeder erfolgreich ein BackupAgent
mit Rückwärtskompatibilität bei der Umsetzung?
Ich glaube, ein Gespräch über das tun dies auf der diesjährigen Barcamp bei Droidcon da war. Kann mich nicht an den Namen des Kerls erinnern, aber es lohnt sich, danach zu suchen. –