質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.69%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

解決済

1回答

3241閲覧

アプリを開いた時に通知を消す android kotlin

kakashi55

総合スコア25

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

1グッド

1クリップ

投稿2021/11/14 11:50

○やりたいこと
Notificationで通知が来た際に、通知をタップしてアプリを開くと通知アイコンが消えるが、
アプリをタップしてアプリを開いた時に通知アイコンを消したい

○課題(困っていること)
通知が来ている時に、アプリをタップして、アプリを開いた時に、通知アイコンが消えない

本件、改善の仕方を教えていただけないでしょうか。

MyNotification

1class MyNotification() { 2 companion object { 3 private const val NOTIFICATION_CHANNEL_ID = "com.example.sample_alarm_manager_channel_id" 4 private const val NOTIFICATION_CHANNEL_NAME = "Time for xxxxx!!" 5 private const val NOTIFICATION_CHANNEL_DESCRIPTION = "Go To The xxxxx" 6 private const val NOTIFICATION_TITLE = "Alert" 7 private const val NOTIFICATION_MESSAGE = "Time For xxxxxx" 8 9 fun sendNotification(context: Context) { 10 val channelId = Companion.NOTIFICATION_CHANNEL_ID //通知チャネルの識別ID 11 val channelName = Companion.NOTIFICATION_CHANNEL_NAME //表示される通知チャネル名 12 val channelDescription = Companion.NOTIFICATION_CHANNEL_DESCRIPTION // 13 14 //Android 8.0 以上ではアプリの通知チャンネルを登録することが必要。 15 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { 16 //通知チャネルと、通知情報に関するデータを格納したNotification オブジェクトを管理するクラス 17 val importance = NotificationManager.IMPORTANCE_DEFAULT //通常オンのみ 18 //通知方法に関するデータをチャンネル毎にまとめて管理する 19 val channel = NotificationChannel(channelId, channelName, importance).apply { 20 description = channelDescription 21 } 22 val manager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager 23 manager.createNotificationChannel(channel) 24 } 25 26 //Notification通知後の 戻り先を指定 27 val intent2: Intent = Intent(context, AlarmActivity::class.java).apply { 28 flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK 29 } 30 val pendingIntent: PendingIntent = PendingIntent.getActivity(context, 0, intent2, 0) 31 32 //通知のコンテンツ作成 33 val builder = NotificationCompat.Builder(context, channelId).apply { 34 setSmallIcon(R.drawable.ic_baseline_info_24) //小さなアイコン 35 setContentTitle(Companion.NOTIFICATION_TITLE) //タイトル 36 setContentText(Companion.NOTIFICATION_MESSAGE) //本文 37 priority = NotificationCompat.PRIORITY_DEFAULT //通知の優先度 38 setContentIntent(pendingIntent) //通知との紐づけをするためにpendingIntentを渡す 39 setAutoCancel(true) //通知を開いたら通知を削除 40 setDefaults(Notification.DEFAULT_ALL) //通知が来た時、発音や振動させる 41 } 42 43 val id = 0 44 NotificationManagerCompat.from(context).notify(id, builder.build()) 45 } 46 } 47 48}
abebebe0715👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。

回答1

1

ベストアンサー

NotificationManager にいくつか cancel メソッドがありますが、アプリ起動時にそれらを実行するというのは如何でしょうか。

NotificationManager#cancel

投稿2021/11/14 20:08

jimbe

総合スコア11798

kakashi55👍を押しています

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。

回答へのコメント

kakashi55

2021/11/15 05:21

いつもありがとうございます。 cancelでやりたいことが出来ました。 以下追加コード NotificationManagerCompat.from(context).cancelAll()
kakashi55

2021/11/15 08:09

jimbeさん いつもご丁寧なご回答をいただきありがとうございます。 以下についても改善方法がお分かりであれば教えていただけないでしょうか。 https://teratail.com/questions/369296

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.69%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

同じタグがついた質問を見る

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。