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

Service & Notification(¾Ë¸²¹Ù¶ç¿ì±â) ÀÌ¿ëÇϱâ
7³â Àü
Service
¼­ºñ½º´Â ¹é±×¶ó¿îµå¿¡¼­ ÀÛµ¿Çϸç Content Provider ¸¦ ¾÷µ¥ÀÌÆ®Çϰųª ÀÎÅÙÆ®¸¦ ½ÇÇà½ÃÅ°°Å³ª Notification(¾Ë¸²)À»
½ÇÇà½ÃÅ°´Â µîÀÇ ¿©·¯°¡Áö ÀÛ¾÷À» ÀÚµ¿À¸·Î ¼öÇàÇÏ´Â ÀÛ¾÷À» ¶æÇÑ´Ù. ÇÏÁö¸¸ ±âº»ÀûÀ¸·Î ANRÀ» ¸·±â À§Çؼ­ µ¹¾Æ°¡´Â
¾²·¹µåÀÇ °³³äÀÌ ¾Æ´Ï¶ó °°Àº ÇÁ·Î¼¼½º ¾È¿¡¼­ ½ÇÇàµÇ´Â °³³äÀÌ´Ù.

(1) ÀÛ¼º°ú ½ÇÇà
  Service Ŭ·¡½º¸¦ »ó¼Ó¹Þ°í, onCreate(¼­ºñ½º°¡ ¸¸µé¾îÁ³À» °æ¿ì ½ÇÇàµÉ ·ÎÁ÷ ÀÛ¼º),
  onBind(AIDL ÀÌ¿ë½Ã ÇÊ¿ä) ¸Þ¼Òµå¸¦ ¿À¹ö¶óÀ̵ùÇÑ´Ù.

  <1> onStartCommand ÀÇ ¿À¹ö¶óÀ̵ù°ú return
   ºÎ°¡ÀûÀ¸·Î ´ëºÎºÐ onStartCommand ¸Þ¼ÒµåÀÇ ¿À¹ö¶óÀ̵ùÀÌ ÇÊ¿äÇѵ¥ ÀÌ ¸Þ¼Òµå¸¦ ÅëÇؼ­ startService ¸Þ¼Òµå
   È£Ãâ½ÃÀÇ ÀÛµ¿ ¹æ½ÄÀ» Á¤ÀÇÇÒ ¼ö ÀÖ´Ù.(2.0 ÀÌÀüÀº onStart()¿¡ ±¸ÇöÇß¾ú´Ù.)
   - START_STICKY : ÀϹÝÀûÀÎ °æ¿ì ÀÌ °ªÀ» ¸®ÅÏÇÏ°Ô µÇ°í, ½ÇÇ൵Áß ¼­ºñ½º°¡ Á¾·áµÆ´Ù°¡ ´Ù½Ã ½ÃÀÛ½Ã
    onStartCommand ¸Þ¼Òµå°¡ °è¼Ó ½ÇÇàµÇ°Ô µÈ´Ù.
   - START_NOT_STICKY
   - START_REDELIVER_INTENT

  <2> AndroidManifest.xml ¿¡ ¼³Á¤
            <service android:name="AIDLService">
                <intent-filter>
                    <action android:name="com.kh.service.AIDL" />
                </intent-filter>
            </service>

  <3> ÇØ´ç¼­ºñ½º¸¦ ½ÇÇà½ÃÅ°°í ½ÍÀ»¶§ startService(intent)¸¦ ÅëÇؼ­ ½ÇÇàÇÏ´Â °ÍÀÌ °¡´ÉÇÏ´Ù.
         À̶§ ¿ÜºÎ ÇÁ·Î±×·¥¿¡¼­µµ ½ÇÇàÀÌ °¡´ÉÇѵ¥ À̶§´Â intent¿¡ ActionÀ» intent-filter¿¡ ÁöÁ¤Çß´ø actionÀ¸·Î
         ÁöÁ¤ÇÔÀ¸·Î¼­ ¿ÜºÎ¿¡¼­µµ ¼­ºñ½º¸¦ È£ÃâÇÏ´Â °ÍÀÌ °¡´ÉÇÏ°Ô µÈ´Ù.


Âü°í »çÀÌÆ®
http://developer.android.com/guide/topics/ui/notifiers/notifications.html - ¾Ë¸²¹Ù ¶ç¿ì±â

»ç¿ë ¿¹Á¦
package com.example.serviceapp;

import android.app.*;
import android.content.*;
import android.os.*;
import android.support.v4.app.*;
import android.support.v4.app.NotificationCompat.*;
import android.util.*;
import android.widget.*;

public class TimeService extends Service {

      @Override
      public IBinder onBind(Intent intent) {
            return null;
      }
    
      @Override
      public void onCreate() {
            Log.d("service","onCreate ½ÇÇà");
      }

      @Override
      public void onDestroy() {
            Log.d("service","onDestroy ½ÇÇà");
            mRunning = false;
      }
    
    
      private Handler mHandler = new Handler() {
            public void handleMessage(Message msg) {
//               switch(msg.what) {}
//               Toast.makeText(getApplicationContext(), "¾Ë¸²!", 0).show();
                  NotificationManager manager =
                             (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
                
                  NotificationCompat.Builder builder =
                            new NotificationCompat.Builder(TimeService.this);
                  builder.setSmallIcon(R.drawable.ic_launcher)
                             .setContentTitle("¾Ë¸³´Ï´Ù")
                             .setContentText("¿Ô´Ù³×~¿Ô´Ù³×~ ³»~°¡ ¿Ô´Ù³×~")
                             .setAutoCancel(true) // ¾Ë¸²¹Ù¿¡¼­ ÀÚµ¿ »èÁ¦
                             .setVibrate(new long[]{1000,2000,1000,3000,1000,4000});
                             // autoCancel : Çѹø ´©¸£¸é ¾Ë¸²¹Ù¿¡¼­ »ç¶óÁø´Ù.
                             // vibrate : ½¬°í, ¿ï¸®°í, ½¬°í, ¿ï¸®°í... ¹Ð¸®¼¼ÄÁ
                             // Áøµ¿ÀÌ µÇ·Á¸é AndroidManifest.xml¿¡ Áøµ¿ ±ÇÇÑÀ» Áà¾ß ÇÑ´Ù.
                
                  // ¾Ë¶÷ Ŭ¸¯½Ã MainActivity¸¦ È­¸é¿¡ ¶ç¿î´Ù.
                  Intent intent = new Intent(getApplicationContext(),MainActivity.class);
                  PendingIntent pIntent = PendingIntent.getActivity(getApplicationContext()
                             , 0
                             , intent
                             , Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
                  builder.setContentIntent(pIntent);
                  manager.notify(1, builder.build());
            };
      };
      protected boolean mRunning;
    
    
      // Á¦ÀÏ Áß¿äÇÑ ¸Þ¼­µå! (¼­ºñ½º ÀÛµ¿³»¿ëÀ» ³Ö¾îÁØ´Ù.)
      @Override
      public int onStartCommand(Intent intent, int flags, int startId) {
            Log.d("service","onStartCommand ½ÇÇà");
            final int time = intent.getIntExtra("time", 0);
//          Toast.makeText(this, "¾È³ç~ ³­ ¼­ºñ½º : "+time, 0).show();
          
            // handler ÅëÇÑ Thread ÀÌ¿ë
            new Thread(new Runnable() {

                  @Override
                  public void run() {
                        mRunning = true;
                        while(mRunning) {
                             SystemClock.sleep(time*1000);
                             mHandler.sendEmptyMessage(0);
                        }
                  }
                
            }).start();
          
          
            return START_STICKY_COMPATIBILITY;
      }
}
ÃßõÃßõ : 217 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
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.