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

¾Èµå·ÎÀ̵å: ¼­ºñ½º 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
ÃßõÃßõ : 309 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
1,346
À©µµ¿ì ¼­¹ö 2019 Ãë¾àÁ¡ Á¡°Ë º¸¾È
1,345
À©µµ¿ì ¼­¹ö 2019 Ãë¾àÁ¡ Á¡°Ë º¸¾È (windows server 2019)
1,344
Windows Ãë¾àÁ¡Áø´Ü º¸¾È°¡À̵å¶óÀÎ
1,343
Windows Admin Center¸¦ ÅëÇÑ ¼­¹ö °ü¸®
1,342
À©µµ¿ì ¼­¹ö¿¡¼­ ½ÇÇàµÇ´Â ¼­ºñ½º È®ÀÎ
1,341
Chrome NET::ERR CERT REVOKED ÇØ°á¹æ¹ý
1,340
cmd ¸í·É¾î (¸í·É ÇÁ·ÒÇÁÆ® ¸í·É¾î) ¸ðÀ½
1,339
Windows10 ƯÁ¤ ÇÁ·Î±×·¥(OCS 2007 R2)¿¡¼­ ÷ºÎÆÄÀÏ µå·¡±×¾Øµå·ÓÀÌ ¾È µÇ´Â Çö»ó
1,338
À©µµ¿ì ·Î±×, °ü¸® À̺¥Æ® »èÁ¦
1,337
Ŭ¸° ºÎÆÃ
1,336
Windows ±¸¼º ¿ä¼Ò ÀúÀå¼Ò¿¡¼­ ÆÄÀÏ ¼Õ»ó °Ë»ç
1,335
Windows Defender °Ë»ç ±â·Ï »èÁ¦Çϱâ
1,334
°£´ÜÇÑ À©µµ¿ì 10 Á¤Ç° ÀÎÁõ (Å©·¢ÇÁ·Î±×·¥ ÇÊ¿ä¾øÀ½)
1,333
¿À·ù³­ Æú´õ °­Á¦»èÁ¦ ¹æ¹ý
1,332
Å©·Ò¿¡¼­ Ç÷¡½Ã Ç×»ó Çã¿ëÇϵµ·Ï ¼³Á¤Çϱâ (·¹Áö½ºÆ®¸®) reg ÆÄÀÏ ¸¸µé±â
1,331
GPT µð½ºÅ©¸¦ MBR µð½ºÅ©·Î º¯È¯
1,330
MBR µð½ºÅ©¸¦ GPT µð½ºÅ©·Î º¯È¯
1,329
±¸±Û °Ë»öÀ» 200% È°¿ëÇÏ°Ô ÇØÁÖ´Â °Ë»ö ¸í·É¾î ÃÑÁ¤¸®
1,328
[Jquery] jQuery·Î ¿ìŬ¸¯ ¹æÁö, µå·¡±× ¹æÁö, ¼±Åà ¹æÁö (IE10, ÆÄÀ̾îÆø½º, Å©·Ò È®ÀÎ)
1,327
php »ç¿ëÀÚ Á¢¼ÓIP, ºê¶ó¿ìÀúÁ¤º¸, osÁ¤º¸, http, https Á¢¼ÓÇÁ·ÎÅäÄÝ ¾Ë¾Æ¿À±â
1,326
[PHP] IE ºê¶ó¿ìÀú Á¢¼Ó °ËÃâÇϱâ
1,325
À©µµ¿ì10 ½Ã½ºÅÛ ¿¹¾à ÆÄƼ¼Ç È®ÀÎ ¹× »èÁ¦
1,324
À©µµ¿ì10 º¹±¸ ÆÄƼ¼Ç »èÁ¦ ¹æ¹ý
1,323
À©µµ¿ì10 ºÎÆÃÁö¿¬ °ËÀºÈ­¸é¿¡¼­ ¸îºÐ°£ ¸Ó¹«´Â Çö»ó ÇØ°á¹æ¹ý
1,322
»ï¼º³ëÆ®ºÏ ¹ÙÀÌ¿À½º ÁøÀÔÀÌ ºÒ°¡´ÉÇÑ °æ¿ì ¹ÙÀÌ¿À½º À缳ġ¿Í NVRAM ÃʱâÈ­
1,321
ÀͽºÇ÷η¯(IE)ÀÇ ±¸±Û °Ë»ö°ø±ÞÀÚ Çѱ۷Πº¯°æ ¹æ¹ý
1,320
À©µµ¿ì 10 ±âº» ¾Û »èÁ¦ ¹× º¹±¸
1,319
meta ÅÂ±× http-equiv ¼³Á¤¹æ¹ý°ú Â÷ÀÌÁ¡
1,318
±¸±Û(Google)°Ë»ö¿¡¼­ °í±Þ¿¬»êÀÚ¸¦ ÀÌ¿ëÇÏ¿© ¸¹Àº Á¤º¸¸¦ ¾ò´Â ¹æ¹ý
1,317
ÇÁ·Î±×·¥ ¾øÀÌ Çϵåµð½ºÅ© º¹»ç ¹× ¹é¾÷Çϱâ
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æħ
Copyright ¨Ï musictrot All rights reserved.