通知をだしたり、通知のタップでアプリの起動する方法を簡単に知りたい人向け。

 通知を出す方法。また通知をタップすることでActivityを表示させることができる。
 基本的にはnotificationからBuilderを取得し、いろいろ設定したらbuild()してManagerに渡す。


//通知の最小構成 これらがないとエラー Chennelは識別する数値
val notifiManager: NotificationManagerCompat = NotificationManagerCompat.from(this)
val notification: Notification = NotificationCompat.Builder(this, "CannelID").run {
    setContentTitle("nullpo")
    setContentText("text1")
    setSmallIcon(android.R.drawable.sym_def_app_icon)
    build()
}

//第一引数は通知を識別する数値 後から同じ数値で通知すると内容を更新したり
//表示を削除したりすることができる
notifiManager.notify(99, notification)

 pendingIntentを設定するだけ

//タップで戻るページを設定しておく
//第二引数はpendingintentを識別するコード タイマーを複数セットするとかのときは別々にする
//第四引数は振る舞いを定義する
//FLAG_CANCEL_CURRENT 同じrequestCodeのPendingIntentが存在したら、キャンセルして新しく作る
//FLAG_NO_CREATE 同じrequestCodeのPendingIntentが存在したらそれを返す。なければNul
//FLAG_ONE_SHOT 同じrequestCodeだった場合すでに作られているPendingIntentを返す。なければ作る
//FLAG_UPDATE_CURRENT 同じrequestCodeのPendingIntentが存在したらそれをつかうがputExtraの値は更新する
val pending: PendingIntent = PendingIntent.getActivity(this, 0, Intent(this, MainActivity::class.java),0)

val notifiManager: NotificationManagerCompat = NotificationManagerCompat.from(this)
val builder: NotificationCompat.Builder = NotificationCompat.Builder(this, "CannelID").apply {
    setContentTitle("nullpo")
    setContentText("text1")
    setSmallIcon(android.R.drawable.sym_def_app_icon)
    setContentIntent(pending)
}
notifiManager.notify(99, builder.build())