ȸ¿ø°¡ÀԡžÆÀ̵ð/ºñ¹øã±â
ȨÀ¸·Î


¾Èµå·ÎÀ̵å: ¼­ºñ½º Service ¿¹Á¦
7³â Àü
¾×ƼºñƼµî  »ç¿ëÀÚ  ÀÎÅÍÆäÀ̽º°¡  ¾ø¾îµµ  ¹é±×¶ó¿îµå¿¡¼­  ½ÇÇàµÇ´Â  µ¿ÀÛÀÌ  ÇÊ¿äÇÒ  ¶§°¡  ÀÖ½À´Ï´Ù.    ¿¹¸¦  µé¸é  ¹è°æÀ½¾ÇÀ̶óµçÁö  ¾Èµå·ÎÀ̵堠»ç¿ë·®  ¸ð´ÏÅ͸µÀ̶óµçÁö,  ÁÖ±âÀûÀ¸·Î  Æ¯Á¤  À¥»çÀÌÆ®¿¡¼­  µ¥ÀÌÅ͸¦  Àо¿Â´ÙµçÁö...          ÀÌ·¯ÇÑ  ±â´ÉÀ»  ¾Èµå·ÎÀ̵忡¼­´Â  Service  (¼­ºñ½º)  ¸¦  ÅëÇؼ­  Á¦°øÇÕ´Ï´Ù.      


Âü°í:  ¾Èµå·ÎÀ̵堠4´ë  ÄÄÆ÷³ÍÆ®
1.  ¾×ƼºñƼ  (Activity)  
2.  ¼­ºñ½º  (Service)
3.  ¹æ¼Û  ¼ö½ÅÀÚ  (Broadcast  Receiver)
4.  ÄÜÅÙÃ÷  Á¦°øÀÚ  (Contents  Provider)  


°®°í  °è½Å  ¾Èµå·ÎÀ̵堠Æù¿¡¼­  ½ÇÇàµÇ´Â  ¼­ºñ½º¸¦  È®ÀÎÇغ¼¼ö  ÀÖ½À´Ï´Ù.
[ȯ°æ¼³Á¤]  -  [¾ÖÇø®ÄÉÀ̼Ǡ °ü¸®ÀÚ]  ¿¡¼­  [½ÇÇàÁß]  À»  ¼±ÅÃÇϸ頠ÇöÀç  ½ÇÇàÁßÀΠ ¼­ºñ½ºµéÀ»  º¼¼ö  ÀÖ½À´Ï´Ù.    »ý°¢º¸´Ù  ¸¹Àº  ¼­ºñ½ºµéÀÌ  ½ÇÇàÁßÀΠ °ÍÀ»  ¾Ë¼ö  ÀÖ½À´Ï´Ù.

À̹ø¿¹Á¦¿¡¼­´Â  ¾Èµå·ÎÀ̵堠4´ë  ÄÄÆ÷³ÍÆ®Áß  ÇϳªÀΠ Service  ¸¦  ±¸ÇöÇØ  º¸°Ú½À´Ï´Ù.
±âº»ÀûÀΠ ¼ø¼­´Â  ´ÙÀ½°ú  °°½À´Ï´Ù.

1.  »ç¿ëÇÒ  Service  (*.java)¸¦  ¸¸µç´Ù
2.  AndroidManifest.xml  ¿¡  Service¸¦  µî·ÏÇÑ´Ù
3.  Service  ¸¦  ½ÃÀÛÇϵµ·Ï  È£ÃâÇÑ´Ù


½ÇÇàÇϸ頠[¼­ºñ½º  ½ÃÀÛÇϱâ]  ¹öÆ°À»  ´©¸£¸é  ¹è°æÀ½¾ÇÀ»  Àç»ýÇϴ  ¼­ºñ½º°¡  ½ÃÀÛµÇ°í  [¼­ºñ½º  Á¾·áÇϱâ]  ¹öÆ°À»  ´©¸£¸é  Á¾·á°¡  µË´Ï´Ù.


1.  »ç¿ëÇÒ  Service  (*.java)¸¦  ¸¸µé±â

[MyService.java]  ÀÛ¼º

-  Service  ¸¦  »ó¼Ó  
      ¿©±â¼­  ±¸ÇöÇؾߠ Çϴ  Áß¿ä  ¸Þ¼Òµå´Â
    onStartCommand()  :      ´Ù¸¥  ÄÄÆ÷³ÍÆ®¿¡¼­  startService()¸¦  È£ÃâÇÏ¿©¼­  ¼­ºñ½º°¡  ½ÃÀ۵Ǹ頠ÀÌ  ¸Þ¼Òµå°¡  È£ÃâµË´Ï´Ù.    ÀÛ¾÷ÀÌ  ¿Ï·áµÇ¾úÀ»  °æ¿ì  stopSelf()  ³ª  stopService()  ¸¦  È£ÃâÇÏ¿©  ¼­ºñ½º¸¦  Á¾·áÇÏ¿©¾ß  ÇÕ´Ï´Ù.    ±×·¸Áö  ¾ÊÀ¸¸é  ¹«ÇÑ  ½ÇÇàµË´Ï´Ù.


//  ¼­ºñ½º  Å¬·¡½º¸¦  ±¸ÇöÇÏ·Á¸é,  Service  ¸¦  »ó¼Ó¹Þ´Â´Ù
public  class  MyService  extends  Service  {
        MediaPlayer  mp;  //  À½¾Ç  Àç»ýÀ»  À§ÇÑ  °´Ã¼

        @Override
        public  IBinder  onBind(Intent  intent)  {
                //  Service  °´Ã¼¿Í  (È­¸é´Ü  Activity  »çÀÌ¿¡¼­)
                //  Åë½Å(µ¥ÀÌÅ͸¦  ÁÖ°í¹ÞÀ»)  ¶§  »ç¿ëÇϴ  ¸Þ¼­µå
                //  µ¥ÀÌÅ͸¦  Àü´ÞÇÒ  ÇÊ¿ä°¡  ¾øÀ¸¸é  return  null;
                return  null;
        }
        @Override
        public  void  onCreate()  {
                super.onCreate();
                //  ¼­ºñ½º¿¡¼­  °¡Àå  ¸ÕÀú  È£ÃâµÊ(ÃÖÃÊ¿¡  Çѹø¸¸)
                Log.d("test",  "¼­ºñ½ºÀÇ  onCreate");
                mp  =  MediaPlayer.create(this,  R.raw.chacha);
                mp.setLooping(false);  //  ¹Ýº¹Àç»ý
        }
        @Override
        public  int  onStartCommand(Intent  intent,  int  flags,  int  startId)  {
                //  ¼­ºñ½º°¡  È£ÃâµÉ  ¶§¸¶´Ù  ½ÇÇà
                Log.d("test",  "¼­ºñ½ºÀÇ  onStartCommand");
                mp.start();  //  ³ë·¡  ½ÃÀÛ
                return  super.onStartCommand(intent,  flags,  startId);
        }

        @Override
        public  void  onDestroy()  {
                super.onDestroy();
                //  ¼­ºñ½º°¡  Á¾·áµÉ  ¶§  ½ÇÇà
                mp.stop();  //  À½¾Ç  Á¾·á
                Log.d("test",  "¼­ºñ½ºÀÇ  onDestroy");
        }
}


2.  AndroidManifest.xml  ¿¡  Service¸¦  µî·ÏÇÑ´Ù

        <application>  ¾È¿¡  ³Ö¾îÁÖ°í  name  ÇÁ·¯ÆÛƼ´Â  Å¬·¡½º  À̸§À»  µî·ÏÇÕ´Ï´Ù


[AndroidManifest.xml]  ÀÛ¼º
<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity  android:name=".MainActivity">
                <intent-filter>
                        <action  android:name="android.intent.action.MAIN"  />

                        <category  android:name="android.intent.category.LAUNCHER"  />
                </intent-filter>
        </activity>

        <service  android:name="MyService"></service>
</application>


3.  Service  ¸¦  ½ÃÀÛÇϵµ·Ï  È£ÃâÇÑ´Ù


[¾×ƼºñƼ]  ÀÛ¼º

<RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin">

        <TextView
                android:id="@+id/textView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_alignParentTop="true"
                android:layout_marginLeft="22dp"
                android:text="¼­ºñ½º"
                android:textAppearance="?android:attr/textAppearanceLarge"  />

        <Button
                android:id="@+id/button1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/button2"
                android:layout_below="@+id/textView1"
                android:layout_marginTop="16dp"
                android:text="¼­ºñ½º  ½ÃÀÛÇϱâ"  />

        <Button
                android:id="@+id/button2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/textView1"
                android:layout_below="@+id/button1"
                android:layout_marginTop="30dp"
                android:text="¼­ºñ½º  Á¾·áÇϱâ"  />

</RelativeLayout>



[MainActivity]  ÀÛ¼º

ÀÎÅÙÆ®¸¦  »ç¿ëÇÏ¿©  ¼­ºñ½º¸¦  °¡µ¿  /  Áß´ÜÇÕ´Ï´Ù.
public  class  MainActivity  extends  AppCompatActivity  {

        @Override
        protected  void  onCreate(Bundle  savedInstanceState)  {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
                //  ¼­ºñ½º  Service  -  ¾Èµå·ÎÀ̵åÀÇ  4´ë  ÄÄÆ÷³ÍÆ®  Áß  Çϳª
                //          È­¸éÀÌ  ¾øÀÌ  µ¿ÀÛÇÔ
                //  º¸Åë  Activity  ¿¡¼­  È£ÃâµÇ¾î  ½ÃÀÛÇÔ

                //  1.  »ç¿ëÇÒ  Service  (*.java)¸¦  ¸¸µç´Ù
                //  2.  AndroidManifest.xml  ¿¡  Service¸¦  µî·ÏÇÑ´Ù
                //  3.  Service  ¸¦  ½ÃÀÛÇϵµ·Ï  È£ÃâÇÑ´Ù

                Button  b1  =  (Button)  findViewById(R.id.button1);
                Button  b2  =  (Button)  findViewById(R.id.button2);

                b1.setOnClickListener(new  OnClickListener()  {
                        public  void  onClick(View  v)  {
                                //  ¼­ºñ½º  ½ÃÀÛÇϱâ
                                Log.d("test",  "¾×ƼºñƼ-¼­ºñ½º  ½ÃÀÛ¹öưŬ¸¯");
                                Intent  intent  =  new  Intent(
                                                getApplicationContext(),//ÇöÀçÁ¦¾î±ÇÀÚ
                                                MyService.class);  //  À̵¿ÇÒ  ÄÄÆ÷³ÍÆ®
                                startService(intent);  //  ¼­ºñ½º  ½ÃÀÛ
                        }
                });

                b2.setOnClickListener(new  OnClickListener()  {
                        public  void  onClick(View  v)  {
                                //  ¼­ºñ½º  Á¾·áÇϱâ
                                Log.d("test",  "¾×ƼºñƼ-¼­ºñ½º  Á¾·á¹öưŬ¸¯");
                                Intent  intent  =  new  Intent(
                                                getApplicationContext(),//ÇöÀçÁ¦¾î±ÇÀÚ
                                                MyService.class);  //  À̵¿ÇÒ  ÄÄÆ÷³ÍÆ®
                                stopService(intent);  //  ¼­ºñ½º  Á¾·á
                        }
                });
        }  //  end  of  onCreate
}  //  end  of  class
ÃßõÃßõ : 311 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
1,286
[Android] webview ssl ¹®Á¦
1,285
[Android] Webview url ¼û±â±â
1,284
[Android] AlarmManager ÀÏÁ¤½Ã°£ À̺¥Æ® ½ÇÇà
1,283
¾Èµå·ÎÀÌµå ¿ÀǼҽº ³¡ÆÇ
1,282
android studio DefaultHttpClient, HttpClient import ¿¡·¯
1,281
[Android] Webview ¸Þ¼Òµå
¾Èµå·ÎÀ̵å: ¼­ºñ½º Service ¿¹Á¦
1,279
[Android] Effect (¿Àµð¿À¸ðµå) º§¸ðµå, Áøµ¿¸ðµå, ¹«À½¸ðµå½Ã µ¿ÀÛó¸®
1,278
Mediaplayer ·Î ÁöÁ¤µÇ¾îÀÖ´Â º§¼Ò¸® Àç»ýÇϱâ
1,277
Android Intent - ¾Èµå·ÎÀ̵å ÀÎÅÙÆ®
1,276
[Android Intent Useage] ¾Èµå·ÎÀ̵å Intent »ç¿ë ¹æ¹ý
1,275
SharedPreferences¶õ?
1,274
ÀÎÅÙÆ®(Intent)·Î µ¥ÀÌÅÍ Àü´Þ(putExtra, getExtras)
1,273
¾Èµå·ÎÀÌµå ±¸±Û ¾Öµå¸÷ Àü¸é±¤°í ³Ö±â
1,272
¾Èµå·ÎÀÌµå µÚ·Î°¡±â ¹öÆ° ´õºíŬ¸¯Çؼ­ ¾Û Á¾·áÇϱâ
1,271
¾Ë¸²Ã¢ ¶ç¿ì±â(Multi Choice, Single Choice)
1,270
Android SharedPreferences »ç¿ë ¿¹Á¦
1,269
¾Èµå·ÎÀ̵å PHP GET ¹æ½Ä Åë½Å¿¡¼­ ÇÑ±Û ±úÁü(?) ÇØ°á
1,268
¾Èµå·ÎÀÌµå ¾Û ÃÖÃÊ ½ÇÇà½Ã ¹ÙÅÁÈ­¸é¿¡ ¾ÆÀÌÄÜ(Shortcut) »ý¼ºÇϱâ
1,267
ÇöÀç½Ã°£(Local Time) °¡Á®¿À±â
1,266
ÆÄÀÏ »ý¼º ¹× ÀúÀå
1,265
µÚ·Î°¡±â(Back ¹öÆ°) µÎ¹ø ´­·¯ ¾Û Á¾·áÇϱâ
1,264
Custom ListView (Ä¿½ºÅÒ ¸®½ºÆ®ºä) Footer¸¦ ÀÌ¿ëÇÑ ´õº¸±â ±¸Çö
1,263
CheckBox(üũ¹Ú½º) À̹ÌÁö º¯°æÇϱâ
1,262
C¼­¹ö¿Í ¼ÒÄÏÅë½Å
1,261
½½¶óÀ̵ù ¸Þ´º - SimpleSideDrawer
1,260
selector·Î ¹öÆ° ¾×¼Ç À̹ÌÁö º¯°æ
1,259
À̹ÌÁö¹öÆ° »çÀÌÁî Á¶Àý
1,258
XmlPullParser °£´ÜÇÑ »ç¿ë¹ý
1,257
¹öÆ°»çÀÌ ¿©¹é ¾ø¾Ö±â
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æħ
Copyright ¨Ï musictrot All rights reserved.