2010-12-05 16 views
6

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

अभी तक इस कार्यक्षमता के लिए यूआई तैयार है और मुझे पता है कि घटना का जवाब कैसे देना है, मुझे क्या पता है कि सेवा कैसे बनाएं और न ही इसे कैसे कनेक्ट करें।

विचार यह है कि सेवा घटनाओं को सुनती है और पृष्ठभूमि पर उनका जवाब देती है और एप्लिकेशन केवल इसे चालू/बंद करने या कुछ सेटिंग्स बदलने के लिए उपयोग किया जाता है।

मैंने वेब पर ट्यूटोरियल की तलाश की है लेकिन मुझे प्रक्रिया नहीं मिल रही है।

उत्तर

10
CheckBox checkBox = 
    (CheckBox) findViewById(R.id.check_box); 
checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
     if (isChecked) { 
      startService(new Intent(this, TheService.class)); 
     } 
    } 
}); 

और सेवा:

public class TheService extends Service { 

    @Override 
    public IBinder onBind(Intent intent) { 
     return null; 
    } 

    @Override 
    public void onCreate() { 
     Toast.makeText(this, "Service created!", Toast.LENGTH_LONG).show(); 
    } 

    @Override 
    public void onDestroy() { 
     Toast.makeText(this, "Service stopped", Toast.LENGTH_LONG).show(); 
    } 

    @Override 
    public void onStart(Intent intent, int startid) { 
     Toast.makeText(this, "Service started by user.", Toast.LENGTH_LONG).show(); 
    } 
} 
+3

लाइन startService (नई आशय (यह, TheClass.class)); पढ़ना चाहिए: startService (नया इरादा (यह, TheService.class))। और AndroidManifest.xml – PedroC88

+0

पर सेवा जोड़ने के लिए मत भूलना सिर के लिए धन्यवाद! फिक्स्ड। – whirlwin

+0

मेरी टिप्पणी उन लोगों के लिए थी जो बाद में आईं ताकि वे खो जाएंगे, लेकिन यह बेहतर है :) धन्यवाद। – PedroC88

1

एंड्रॉयड स्टूडियो, राइट क्लिक पैकेज में, उसके बाद नया चुनें | सेवा | सर्विस।

@Override 
int onStartCommand(Intent intent, int flags, int startId) { 
    // Your code here... 
} 

नोट: onStart बहिष्कृत हो गई है अब इस विधि जोड़ें। एक गतिविधि के onCreate विधि से (या एक प्रसारण रिसीवर के onReceive विधि):

सेवा शुरू करने के लिए

Intent i = new Intent(context, MyService.class); 
context.startService(i); 
संबंधित मुद्दे