Android

안드로이드 - Notification Button(노티피케이션 버튼)

남자두부 2015. 6. 22. 22:15
반응형

1

 

레이아웃을 만든다.

 

2

 

매니페스트에 리시버를 등록한다.

 

1
2
3
4
5
<receiver android:name=".MyNotiBroadcastReceiver">
    <intent-filter android:priority="10000">
        <action android:name="android.intent.action.MAIN" />
    </intent-filter>
</receiver>
cs

 

3

 

메소드를 만든다.

 

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
public void noti(View v) {
    Notification mNoti = new Notification.Builder(this)
        .setContentTitle("")
        .setContentText("")
        .setTicker("")
        .setSmallIcon(R.drawable.launcher)
        .build();
 
    NotificationManager mNotimana = 
        (NotificationManager)
            getSystemService(Context.NOTIFICATION_SERVICE);
 
    Intent notiIntent = new Intent("android.intent.action.MAIN");
        
    PendingIntent pendingIntent = 
        PendingIntent.getBroadcast(
            this,
            0,
            notiIntent,
            pendingIntent.FLAG_UPDATE_CURRENT);
 
    //원하는 레이아웃을 만들어 2번째 값에 넣는다.
    RemoteViews contentiew =
        new RemoteViews(getPackageName(), R.layout.notification);
 
    contentiew.setOnClickPendingIntent(R.id.notibutton, pendingIntent);
 
    //1번째 값은 레이아웃의 객체 아이디
    //2번째 값은 원하는 String 값
    contentiew.setTextViewText(R.id.notiTextView, test);
        
    mNoti.flags |= Notification.FLAG_NO_CLEAR;
    mNoti.bigContentView = contentiew;
        
    mNotimana.notify(1, mNoti);
}
cs

 

4

 

브로드캐스트 클래스를 만든다.

 

1
2
3
4
5
6
7
public class MyNotiBroadcastReceiver extends BroadcastReceiver {
    public void onReceive(Context context, Intent intent) {
 
        //원하는 작업
 
    }
}
cs

 

*

 

2번의 액션 네임과 3번의 인텐트 값이 일치해야 한다.

반응형