मेरे एंड्रॉइड ऐप में कुछ डेटा हैं जो मैं बैकअप और पुनर्स्थापित करना चाहता हूं। उस उद्देश्य के लिए मैंने BackupAgent
का एक कस्टम कार्यान्वयन बनाया है।ऑनस्टोर मेरे कस्टम बैकअप के लिए नहीं बुलाया गया
में बैकअप एजेंट को शामिल किया है मेरी प्रकट में आप नीचे
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:installLocation="auto"
package="com.myapp"
android:versionCode="14"
android:versionName="1.13" >
<application
android:backupAgent="com.myapp.MyBackupAgent">
<meta-data
android:name="com.google.android.backup.api_key"
android:value="my key" />
मैं बैकअप सेवा api कुंजी को शामिल किया है देखने के रूप में कर सकते हैं, हालांकि मैं एमुलेटर (Android 2.2) के साथ परीक्षण कर रहा हूँ और यह नहीं होना चाहिए आवश्यक है, क्योंकि यह स्थानीय बैकअप परिवहन का उपयोग करता है।
आदेश बैकअप का परीक्षण करना और बहाल मैंने किया है निम्नलिखित करने के लिए:
- एमुलेटर शुरू अपने आवेदन के साथ स्थापित किया।
बैकअप
adb शेल bmgr सच
कॉल मेरे कोड का हिस्सा सक्षम सक्षम थे BackupManager कक्षा में dataChanged विधि कहा जाता है।
मैन्युअल बैकअप आपरेशन
adb शेल bmgr चलाने
लॉग कि अपने कस्टम BackupAgent की onBackup विधि बुलाया गया था चेक इन आरंभ करें।
- एप्लिकेशन अनइंस्टॉल करें
- एप्लिकेशन पुनर्स्थापित लॉग में
- चेक अगर onRestore विधि कहा जाता है।
बात यह है कि ऑनरस्टोर विधि को नहीं कहा जाता है और मुझे नहीं पता कि क्यों। एप को पुनर्स्थापित करने या मैन्युअल रूप से एडब के साथ पुनर्स्थापित करने के बाद मैं कंसोल में निम्नलिखित देखता हूं।
$adb shell bmgr restore com.myapp
restoreStarting: 2 packages
restoreFinished: 0
done
और लॉग में यह अन्य
D/AndroidRuntime(8259):
D/AndroidRuntime(8259): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
D/AndroidRuntime(8259): CheckJNI is ON
D/AndroidRuntime(8259): --- registering native functions ---
D/BackupManagerService( 59): MSG_RUN_RESTORE [email protected]
V/LocalTransport( 59): start restore 1
V/LocalTransport( 59): nextRestorePackage() = @[email protected]
V/LocalTransport( 59): getRestoreData() found 7 key files
V/LocalTransport( 59): ... key=com.android.providers.settings size=1208
V/LocalTransport( 59): ... key=com.myapp size=501
V/LocalTransport( 59): ... key=android size=1208
V/LocalTransport( 59): ... key=com.android.providers.userdictionary size=1208
V/LocalTransport( 59): ... key=com.android.browser size=1208
V/LocalTransport( 59): ... key=com.android.inputmethod.latin size=1208
V/LocalTransport( 59): ... [email protected]@ size=11
V/LocalTransport( 59): no more packages to restore
V/LocalTransport( 59): finishRestore()
V/LocalTransport( 59): finishRestore()
D/AndroidRuntime(8259): Shutting down VM
लेकिन मैं नहीं दिख रहा है बस इसे की शुरुआत में है कि onRestore करने के लिए कॉल वास्तव में किया जाता है (मैं कुछ प्रवेश बयान है?
क्या यह कभी आपके साथ हुआ है? क्या 0Rमें भी 0Rकहा जाता है, पर भी कोई कारण नहीं है?
मैंने सैमसंग गैलेक्सी नेक्सस, एक उचित फोन के साथ भी कोशिश की। मैंने स्वयं को यह सुनिश्चित कर लिया है कि मेरे पास बैकअप सक्षम है, जैसा कि निम्न लिंक में वर्णित है: http://support.verizonwireless.com/clc/devices/knowledge_base.html?id=51309 और मैं इसे लॉग में देखता हूं 'डब्ल्यू/बैकअप मैनेजर सेवा (1 9 6): बैकअप पास लेकिन ई = सच्चा पी = झूठा ', जिसका अर्थ है सक्षम है लेकिन प्रावधान नहीं है। यह प्रावधान क्यों नहीं है? – mollymay
मुझे आज यह समस्या मिली। ऑनबैक अपवाद के बिना सफलतापूर्वक बुलाया गया लेकिन ऑनस्ट को फिर से इंस्टॉल करते समय रीस्टोर नहीं कहा जाता है। क्या आपको कारण पता चला? धन्यवाद! – Loc