2013-03-22 6 views
8

किसी भी समय जब मैं "ऑटो अपडेट" विकल्प सक्षम करता हूं, तो ऐप स्वचालित रूप से अपडेट हो जाएगा, तो मैं बाजार में अपने ऐप का एक नया संस्करण प्रकाशित करता हूं।बाजार अपडेट

ऐप में ऐसी सेवा होती है जो लगातार चलती है। लेकिन जब स्वचालित अपडेट होता है, तो पुराना चल रहा ऐप मारे जाते हैं, लेकिन नया शुरू नहीं होता है। चूंकि अद्यतन उपयोगकर्ता के लिए पारदर्शी रूप से होता है, इसलिए यह समझ में आता है कि अद्यतन के बाद ऐप की सेवा स्वचालित रूप से फिर से शुरू होनी चाहिए ताकि सेवा में लगभग कोई रुकावट न हो।

बाजार से वास्तविक अपडेट के साथ इसका परीक्षण करना थोड़ा मुश्किल है, इसलिए मैं इस अद्यतन प्रक्रिया को अनुकरण करने के लिए निम्नलिखित दो एडीबी कमांड का उपयोग कर रहा हूं। 1 संस्करण स्थापित करें:

adb install oldversion.apk 

स्वत: अद्यतन:

adb install -r newversion.apk 

बाद मैं दूसरे आदेश चला, एप्लिकेशन को सफलतापूर्वक अद्यतन हो जाता है, लेकिन यह रोक दिया गया है और न पुन: प्रारंभ।

हम कैसे नए संस्करण की सेवा स्वचालित रूप से शुरू कर सकते हैं?

+1

http://stackoverflow.com/questions/10728016/android-restart-application-after-update-action-package-replaced – Alexis

उत्तर

4

यह कुछ आप ध्यान से परीक्षण करने के लिए होगा, लेकिन आप कार्रवाई Intent.ACTION_PACKAGED_REPLACED

तो फिर आप अपने रिसीवर से सेवा शुरू के साथ एक प्रसारण रिसीवर के साथ इसे पकड़ में सक्षम होना चाहिए।

+0

मैं कोशिश कर रहा हूं लेकिन काम नहीं कर रहा हूं ... मैंने http://pastie.org/ की कोशिश की 82238 9 3 क्या आप सुझाव दे सकते हैं ?? –

+0

मुझे लगता है कि ACTION_MY_PACKAGE_REPLACED का उपयोग करना बेहतर होगा? चूंकि यह पैकेज को अपडेट किया जा रहा है, सभी पैकेज नहीं। – code2be

1

एक BroadcastReceiverIntent.ACTION_PACKAGE_REPLACED को

रजिस्टर फिर, अपने स्वयं के साथ EXTRA_UID की तुलना करें। यदि यह मेल खाता है, तो आप अपनी सेवा फिर से शुरू कर सकते हैं।

7

यदि आपका ऐप API 12 या उच्चतर पर चल रहा है, तो मैं BroadcastReceiver को android.intent.action.MY_PACKAGE_REPLACED पर सुनकर अनुशंसा करता हूं।

यह इरादा केवल तभी ट्रिगर किया गया है जब आपके एप्लिकेशन को अपडेट मिला हो।

संबंधित मुद्दे