2011-02-26 16 views
7

से प्रदर्शन स्थिति बार अधिसूचना मैं विशिष्ट समय पर उपयोगकर्ता को नोटिफिकेशन प्रदर्शित करने के लिए कोड लिख रहा हूं (जैसे Google कैलेंडर ऐप)।ब्रॉडकास्ट रिसीवर

मैं इसलिए बनाया:

  • एक BroadcastReceiver कि BOOT_COMPLETED को सुनता है, स्वागत पर यह आदेश उपकरण जब यह अभी भी सामान लोड कर रहा है ओवरलोड नहीं करने के लिए एक मिनट में एक अलार्म सेट;
  • एक BroadcastReceiver कि अलार्म को सुनता है: पहला सेट BOOT_COMPLETED के एक मिनट बाद, और (Google कैलेंडर में) की तरह अगले नियुक्ति पर अगले

तो, आम तौर पर:

  1. BOOT_COMPLETED => एक मिनट की देरी के साथ लॉन्च अलार्म
  2. एक मिनट बाद => रिसीवर अगली नियुक्ति के लिए एक और अलार्म सेट करता है
  3. कई मिनट/घंटे/दिन बाद, अलार्म जाता है es off => रिसीवर एक स्टेटस बार अधिसूचना प्रदर्शित करता है

जिसका अर्थ है कि स्टेटस बार नोटिफिकेशन BroadcastReceiver से लॉन्च किया गया है।

मैं दस्तावेज़ जिसे वे क्रियाएँ या सेवाओं से प्रक्षेपित किया जाना चाहिए में पढ़ा है: https://developer.android.com/guide/topics/ui/notifiers/notifications.html#Basics

मैं यहाँ सबसे अच्छा अभ्यास के लिए पूछ रहा हूँ। क्या मुझे Service बनाना चाहिए जो BroadcastReceiver द्वारा लॉन्च किया जाएगा, और स्टेटस बार अधिसूचना लॉन्च करने का एकमात्र उद्देश्य कौन सा होगा? मेरा कोड काम कर रहा है, मैं बस Google द्वारा सुझाए गए स्वच्छ कोड बनाना चाहता हूं।

+0

अच्छा सवाल, यह मुझे मेरे वर्तमान सेटअप को फिर से डिजाइन करने पर विचार कर रहा है जो आपके द्वारा वर्णित 'अलार्म'->' ब्रॉडकास्ट रिसीवर'-> 'अधिसूचना' योजना का उपयोग करता है: - \ –

उत्तर

1

आप BroadcastReceiver, AFAIK से Notification जोड़ सकते हैं। यह काफी तेज़ होना चाहिए। यदि StrictMode इसके बारे में शिकायत करता है, तो इसके बारे में चिंता करने योग्य हो सकता है - अन्यथा, आपको ठीक होना चाहिए।

+0

दाएं। बस सुरक्षित होने के बावजूद, अलार्म जो अधिसूचना को प्रदर्शित करता है वास्तव में सेवा लॉन्च करेगा, जो अधिसूचना प्रदर्शित करेगा। यदि मैं अधिसूचना से पहले महंगा कोड जोड़ता हूं तो यह भविष्य-सबूत भी होगा। –

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