【Kotlin】BroadcastReceiverの使い方

ブロードキャストレシーバーを使う方法です。

例えば、裏でサービスを動かしておき、何かのタイミングでアクティビティに通知しUIを更新する、、、などの時に使えます。

アクティビティは以下のようにします。

        // ブロードキャストレシーバーの登録。受信時のUI更新処理もここで定義する。
        val receiver = object : BroadcastReceiver() {
            override fun onReceive(context: Context, intent: Intent) {
                //UI update here
                tv_state.text = "検知中"
                tv_explain.text = intent.getStringExtra("message")
            }
        }
        val filter = IntentFilter()
        filter.addAction("DO_ACTION")
        registerReceiver(receiver, filter)

次にサービスなどで通知を出す方の処理です。

    //ブロードキャストの送信。
    private fun sendMessage(msg: String?) {
        val broadcast = Intent()
        broadcast.putExtra("message", msg)
        broadcast.action = "DO_ACTION"
        baseContext.sendBroadcast(broadcast)
    }

通知を出したいタイミングで任意のメッセージと共に上記の関数を呼びます。

ABOUTこの記事をかいた人

個人アプリ開発者。Python、Swift、Unityのことを発信します。月間2.5万PVブログ運営。 Twitter:@yamagablog