본문

[2017.10.11] 45. Android 서비스(Service) 실습3 - Notification

도입

이번 포스팅에서는 지난번 포스팅의 startServicebindService와 함께 Notification 기능을 사용해 볼 예정이다.

Notification는 상태표시줄에 서비스의 기능을 알려준다.

[Notification의 예]



실습1 (startService + Notification)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
public class MyService extends Service {
    // ...
    @Override    
    public int onStartCommand(Intent intent, int flags, int startId) {
        setNotification();
        return super.onStartCommand(intent, flags, startId);
    } 
    // ...
 
    // 알람의 고유 번호 cf) StartActivityForResult의 requestCode와 동일 기능
    private final int TEST_FLAG = 111;
 
    private void setNotification() {
        // 알람을 관리하는 알람 매니저 설정
        NotificationManager notificationManager
                = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
 
        // 알람 알리기
        notificationManager.notify(TEST_FLAG, makeNotification());
    }
 
    private Notification makeNotification() {        
        // 알람바 변수
        Notification notification=null;
 
        // 알람바를 생성하기 위한 빌더 변수, 빌더 패턴
        NotificationCompat.Builder notifBuilder = new NotificationCompat.Builder(this);
 
        Bitmap largeIcon = BitmapFactory.decodeResource(getResources(), R.mipmap.up);
 
        // 빌더에 설정
        notifBuilder.setContentTitle("Content Title")
                    .setContentInfo("Content Info")
                    .setContentText("Content Text")
                    .setProgress(10020false)
                    .setCategory("Category")
                    .setSmallIcon(R.mipmap.happy)
                    .setLargeIcon(largeIcon);
 
        // 빌더를 통해 알람바 생성
        notification = notifBuilder.build();
 
        return notification;
    }
}
cs


실습2 (bindServiceNotification)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
public class MyService extends Service {
    // ...
       @Override    
    public IBinder onBind(Intent intent) {
        customBinder = new CustomBinder();
        setNotification();
        return customBinder;
    }    
    
// ...
    // 알람의 고유 번호 cf) StartActivityForResult의 requestCode와 동일 기능
    private final int TEST_FLAG = 111;
 
    private void setNotification() {
        // 알람을 관리하는 알람 매니저 설정
        NotificationManager notificationManager
                = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
 
        // 알람 알리기
        notificationManager.notify(TEST_FLAG, makeNotification());
    }
 
    private Notification makeNotification() {        
        // 알람바 변수
        Notification notification=null;
 
        // 알람바를 생성하기 위한 빌더 변수, 빌더 패턴
        NotificationCompat.Builder notifBuilder = new NotificationCompat.Builder(this);
 
        Bitmap largeIcon = BitmapFactory.decodeResource(getResources(), R.mipmap.up);
 
        // 빌더에 설정
        notifBuilder.setContentTitle("Content Title")
                    .setContentInfo("Content Info")
                    .setContentText("Content Text")
                    .setProgress(10020false)
                    .setCategory("Category")
                    .setSmallIcon(R.mipmap.happy)
                    .setLargeIcon(largeIcon);
 
        // 빌더를 통해 알람바 생성
        notification = notifBuilder.build();
 
        return notification;
    }
}
cs



스크린 샷



 



#안드로이드 노티피케이션 #android notification

공유

댓글