मैं एक ऐसा एप्लिकेशन बना रहा हूं जिसका एकमात्र घटक service
है जो पृष्ठभूमि में चल रहा है (मूल रूप से प्रॉक्सी सर्वर) लेकिन मैं उस सेवा को कैसे शुरू करना है, इस तरीके से कोई रास्ता नहीं ढूंढ पा रहा हूं। एप्लिकेशन में कोई UI या उपयोगकर्ता इंटरैक्शन नहीं हो सकता है इसलिए मैं गतिविधि का उपयोग नहीं कर रहा हूं।
Broadcast receiver
बूट प्रसारण सुन सकता है लेकिन जब मैं इसे स्थापित करता हूं तो पहली बार सेवा कैसे शुरू करूं और मैं इसे कैसे चला सकता हूं? या कोई प्रसारण है जिसे मैं ऐप इंस्टॉल करने के बाद सुन सकता हूं उदा। हो सकता है कि TIME_TICK हो लेकिन मुझे लगता है कि गतिविधि से पंजीकृत होना है।सेवा-केवल एंड्रॉइड ऐप कैसे शुरू करें
उत्तर
दुर्भाग्य से अभी आपके आवेदकॉन स्थापित होने के बाद प्रसारण ईवेंट प्राप्त करने का कोई विश्वसनीय तरीका नहीं है, ACTION_PACKAGE_ADDED इरादा नए स्थापित पैकेज पर प्रसारित नहीं होता है।
ACTION_BOOT_COMPLETED ईवेंट प्राप्त करने के लिए आपको एक प्रसारण रिसीवर कक्षा और साथ ही अपनी सेवा भी होगी। मैं उस प्रसारण रिसीवर द्वारा पकड़े जाने के लिए ACTION_USER_PRESENT इरादे जोड़ने की भी सिफारिश करता हूं, इसके लिए एंड्रॉइड 1.5 (मिनीएसडीके = 3) की आवश्यकता होती है, जब भी उपयोगकर्ता अपने फोन को अनलॉक करता है तो यह आपके प्रसारण रिसीवर को कॉल करेगा। आखिरी बात यह है कि आप आसानी से बंद होने के बिना अपनी सेवा को चालू रखने की कोशिश करने के लिए कर सकते हैं, अपनी सेवा में Service.setForeground() पर कॉल करना है एंड्रॉइड को बताने के लिए तैयार करें कि आपकी सेवा को रोका नहीं जाना चाहिए, यह मुख्य रूप से एमपी 3 प्लेयर प्रकार के लिए जोड़ा गया था सेवाएं जो चलती रहती हैं लेकिन किसी भी सेवा द्वारा उपयोग की जा सकती हैं।
सुनिश्चित करें कि आप boot_complete और user_present ईवेंट के लिए उचित अनुमतियां प्रकट करते हैं।
यहां एक साधारण वर्ग है जिसे आप ईवेंट के लिए प्रसारण रिसीवर के रूप में उपयोग कर सकते हैं।
package com.snctln.util.WeatherStatus;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class WeatherStatusServiceReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
if(intent.getAction() != null)
{
if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED) ||
intent.getAction().equals(Intent.ACTION_USER_PRESENT))
{
context.startService(new Intent(context, WeatherStatusService.class));
}
}
}
};
शुभकामनाएँ।
अच्छी सलाह। Service.setForeground() के बारे में एक बात: यह अब एंड्रॉइड 2.0+ में काम नहीं करती है। सभी "दीर्घकालिक" सेवाओं को अब चल रहे समय अधिसूचना क्षेत्र में लगातार अधिसूचना की आवश्यकता है। यहां उदाहरण: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/ForegroundService.html –
ACTION_USER_PRESENT एक शानदार युक्ति है। मैं उम्र के लिए अपनी सेवा को जीवित रखने के साथ संघर्ष कर रहा हूं, और इसने इसे हल किया। – defrex
ठीक है, यह एंड्रॉइड 4.0.x में और अधिक काम नहीं कर रहा है ... – ubuntudroid
Service.onStartCommand
में वापसी START_STICKY
एंड्रॉयड आपकी सेवा को पुनः आरंभ करेगा
START_STICKY केवल एंड्रॉइड 2.0+ – cow
के लिए मान्य है लेकिन निरंतरता प्राप्त करने के लिए सेवा को कम से कम एक बार चलाने की ज़रूरत है? –
मैं एक ही मुद्दे पर शोध कर रहा हूँ। यहाँ है कि मैं क्या पाया है: http://kfb-android.blogspot.de/2009/04/registering-for-timetick-after-reboot.html
सरल थोड़ा डेमो एक BroadcatReceiver
और एक Service
के बीच पिंगपांग का एक छोटा सा खेल कर एक समाधान से पता चलता है। रिसीवर ACTION_BOOT_COMPLETED
प्राप्त करने के लिए मेनिफेस्ट में पंजीकरण करके बूट समय पर शुरू करने के लिए पंजीकृत है। यह ACTION_BOOT_COMPLETED
प्राप्त करते समय बस एक सेवा शुरू करता है। बदले में Service
पंजीकृत करता है तो ACTION_TIME_TICK
के लिए।
ऐप तर्क BroadcastReceiver
में लागू किया जाएगा।
- 1. एंड्रॉइड - लॉन्चर ऐप कैसे बनाना शुरू करें?
- 2. एंड्रॉइड: अधिसूचना से ऐप को फिर से शुरू कैसे करें?
- 3. एंड्रॉइड ऐप से स्काइप कॉल कैसे शुरू करें?
- 4. Vuforia एआर नमूना ऐप एंड्रॉइड कैसे शुरू करें?
- 5. एक एनएफसी टैग से एक एंड्रॉइड ऐप/मंशा शुरू करें?
- 6. एनडीके का उपयोग कैसे करें? 'हैलो वर्ल्ड' ऐप से शुरू
- 7. स्थापना पर एंड्रॉइड सेवा कैसे शुरू करें
- 8. फिर से शुरू करें एंड्रॉइड
- 9. एंड्रॉइड - कई गतिविधियां शुरू करें
- 10. बूट समय पर एप्लिकेशन को कैसे शुरू/लॉन्च करें एंड्रॉइड
- 11. एंड्रॉइड ऐप
- 12. एक मूल एंड्रॉइड ऐप डीबग कैसे करें?
- 13. एंड्रॉइड ऐप से कैसे ट्वीट करें?
- 14. एंड्रॉइड मार्केट ऐप से कैसे लिंक करें
- 15. (एंड्रॉइड) ऐप "लॉन्च" पर कुछ कैसे करें?
- 16. वेब एप्लिकेशन से WinRT ऐप कैसे शुरू करें?
- 17. ब्राउज़र लिंक के माध्यम से एक एंड्रॉइड ऐप कैसे शुरू करें?
- 18. एंड्रॉइड - पैकेज नाम के साथ तीसरे पक्ष के ऐप को कैसे शुरू करें?
- 19. एंड्रॉइड ऐप फोन बूट पर आपकी सेवा शुरू करने में देरी कैसे करें
- 20. एंड्रॉइड ब्राउज़र से ऐप कैसे शुरू करें, जब मैं पता बार में "myapp: //" टाइप करता हूं
- 21. एकता अनुप्रयोग से एंड्रॉइड गतिविधि कैसे शुरू करें?
- 22. एंड्रॉइड: "ऐप ऐप" के रूप में अपना ऐप कैसे पंजीकृत करें
- 23. एंड्रॉइड: मैं अपने ऐप से एक और ऐप कैसे खोलूं?
- 24. एंड्रॉइड गेम डेवलपमेंट शुरू करना
- 25. एंड्रॉइड ऐप
- 26. एंड्रॉइड सेवा: बाध्य या शुरू करें?
- 27. एंड्रॉइड नया इरादा विशेष विधि शुरू करें
- 28. संरचना कैसे शुरू करें?
- 29. डीबगिंग कैसे शुरू करें?
- 30. किसी गतिविधि के बिना एंड्रॉइड में सेवा कैसे शुरू करें
मैंने इसे स्वयं नहीं किया है, लेकिन क्या एप्लिकेशन ऑब्जेक्ट से सेवा शुरू करना संभव होगा? – phreed
मुझे लगता है कि यह काम करता है http://android-codes-examples.blogspot.com/2011/11/running-service-in-background-on.html – Android