개발자 승학

안드로이드 Notification(노티피케이션) 사용하기 본문

it/안드로이드(android studio)

안드로이드 Notification(노티피케이션) 사용하기

유승학 2018. 9. 7. 13:45


<Button
android:id="@+id/create"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="알림 생성"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<Button
android:id="@+id/remove"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="23dp"
android:layout_marginStart="23dp"
android:layout_marginTop="56dp"
android:text="알림 제거"

app:layout_constraintTop_toTopOf="parent" />알림은 앱에서 꼭 필요한 기능이라고 생각합니다.


알림은 애플리케이션의 UI 외부에서 사용자에게 표시할 수 있는 메시지입니다.


이번 시간에는 Notification 알림에 대해 간단한 예제를 보여드리겠습니다.





1. 알림 및 내용 설정


알림을 만들려면 NotificationCompat.Builder 개체를 사용하여 콘텐츠와 채널을 설정해야 합니다.


다음의 3가지는 개체에 반드시 포함해야 합니다.




NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "default");

builder.setSmallIcon(R.mipmap.ic_launcher);
builder.setContentTitle("알림 제목");
builder.setContentText("알람 세부 텍스트");



2. 알림 표시


알림을 표시하려면  NotificationManager.notify()을 호출하고 고유 id와 결과를 호출 결과를 전하면 됩니다.


// 알림 표시
NotificationManager notificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
notificationManager.createNotificationChannel(new NotificationChannel("default", "기본 채널", NotificationManager.IMPORTANCE_DEFAULT));
}

// id값은
// 정의해야하는 각 알림의 고유한 int값
notificationManager.notify(1, builder.build());






[xml]

<Button
android:id="@+id/create"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="알림 생성"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<Button
android:id="@+id/remove"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="23dp"
android:layout_marginStart="23dp"
android:layout_marginTop="56dp"
android:text="알림 제거"
app:layout_constraintTop_toTopOf="parent" />

[java]


public class MainActivity extends AppCompatActivity {

// 알림생성버튼
private Button create;
// 알림제거버튼
private Button remove;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

create = findViewById(R.id.create);
remove = findViewById(R.id.remove);

create.setOnClickListener(new View.OnClickListener() {
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
@Override
public void onClick(View view) {

createNotification();
}
});

remove.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

removeNotification();
}
});
}

private void createNotification() {

NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "default");

builder.setSmallIcon(R.mipmap.ic_launcher);
builder.setContentTitle("알림 제목");
builder.setContentText("알람 세부 텍스트");

builder.setColor(Color.RED);
// 사용자가 탭을 클릭하면 자동 제거
builder.setAutoCancel(true);

// 알림 표시
NotificationManager notificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
notificationManager.createNotificationChannel(new NotificationChannel("default", "기본 채널", NotificationManager.IMPORTANCE_DEFAULT));
}

// id값은
// 정의해야하는 각 알림의 고유한 int값
notificationManager.notify(1, builder.build());
}

private void removeNotification() {


// Notification 제거
NotificationManagerCompat.from(this).cancel(1);
}
}


결과




궁금하신점은 댓글을 달아주세요.

Comments