2011-11-25 14 views
10

मैं वर्तमान में सीख रहा हूं कि एंड्रॉइड पर सेवाओं का निर्माण और उपयोग कैसे करें। मैंने आगे की मदद के लिए एंड्रॉइड एसडीके पर देखा और मुझे एंड्रॉइड मिला: enable = [true | झूठा]एंड्रॉइड: सक्षम और सेवाएं

SDK में

कहा जाता है कि:

और विशेषताओं दोनों होना चाहिए "सही" (के रूप में वे दोनों डिफ़ॉल्ट रूप से कर रहे हैं) के लिए सेवा सक्षम हो। यदि या तो "झूठा" है, तो सेवा अक्षम है; इसे तत्काल नहीं किया जा सकता है।

तो मुझे पता के हित है क्या चाहते हैं/क्यों (सामान्य रूप में)

  • आवेदन की स्थापना के रूप में "गलत" सक्षम बनाता है।
  • सेवा को "झूठी" के रूप में सक्षम करने के लिए सक्षम करें।

मैं कहता हूं कि यदि हम सेवा को झूठी के रूप में सक्षम करते हैं तो उस सेवा को कॉल करने का कोई तरीका नहीं है, तो हम पहले ही उस सेवा को क्यों बनाते हैं?

धन्यवाद और इस तरह के लंबे संदेश के लिए खेद है।

उत्तर

16

नया SAF (स्टोरेज एक्सेस फ्रेमवर्क) एंड्रॉइड: सक्षम विशेषता का उपयोग करने का एक अच्छा उदाहरण है। http://developer.android.com/guide/topics/providers/document-provider.html

एंड्रॉयड: सक्षम विशेषता एक बूलियन मान एक संसाधन फ़ाइल में परिभाषित करने के लिए निर्धारित किया है। इस विशेषता का उद्देश्य एंड्रॉइड 4.3 या उससे कम वाले डिवाइसों पर प्रदाता को अक्षम करना है। उदाहरण के लिए,

android:enabled="@bool/atLeastKitKat" 

प्रकट में इस विशेषता को शामिल करने के अलावा, आप निम्न कार्य करने होंगे: तहत res/values ​​अपने bool.xml संसाधन फ़ाइल में /, इस पंक्ति जोड़ें:

:

<bool name="atLeastKitKat">false</bool> 

तहत res/values-v19/अपने bool.xml संसाधन फ़ाइल में, इस पंक्ति जोड़ें

<bool name="atLeastKitKat">true</bool> 
+0

अच्छा और उपयोगी उदाहरण – matreshkin

18

एप्लिकेशन को सेट करना "झूठा" के रूप में सक्षम बनाता है।

मुझे यह करने के लिए कोई अच्छा कारण नहीं है।

मैं कहता हूं कि यदि हम सेवा को झूठी के रूप में सक्षम करते हैं तो उस सेवा को कॉल करने का कोई तरीका नहीं है, तो हम पहले ही उस सेवा को क्यों बनाते हैं?

आम तौर पर, यह सच है। android:enabled असल में सभी घटकों के लिए विरासत में मिला है, इसलिए यह सेवाओं के लिए अद्वितीय नहीं है।

  • गतिविधि:: यहाँ परिदृश्य होंगे जहां वह इस्तेमाल किया जा सकता है आप लॉन्चर में दूसरे आइकन करना चाहते हैं, लेकिन केवल तभी जब उपयोगकर्ता द्वारा खरीदी गई कुछ के माध्यम से इन-ऐप क्रय (जैसे, उन्नयन करने के लिए "प्रो "सुविधाओं)

  • BroadcastReceiver: आप ACTION_BOOT_COMPLETED के माध्यम से बूट समय पर नियंत्रण प्राप्त करना चाहते हैं, लेकिन आप की जरूरत नहीं है कि समय के सभी

  • सेवा और ContentProvider: आपके पास ऐप्स का एक परिवार है, जहां आपको सेवा/सामग्री प्रदाता के एक कार्यान्वयन की आवश्यकता होती है, भले ही आपके परिवार से एक से अधिक ऐप उपयोगकर्ता द्वारा

  • द्वारा स्थापित किया गया हो

इन मामलों में, आपके पास घटक में घटक अक्षम (android:enabled="false") हो सकता है, और PackageManager और setComponentEnabledSetting() का उपयोग सशर्त रूप से उन्हें बाद में सक्षम करने के लिए करें।

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