サービスからActivityへ連携する

ServiceからActivityに値を投げたり画面を更新したりする方法

ServiceからActivityへ情報を渡す

broadcastを使ったデータ連携方法

受け側のActivity

    override fun onCreate(savedInstanceState: Bundle?) {
    ...
        // receiverを登録する
        val receiver =object: BroadcastReceiver(){
            override fun onReceive(context: Context, intent: Intent) {
                val extras = intent.extras
                val msg = extras!!.getString("message")
                ~すきな処理~
            }
        }
    ...
    }

送り側のサービス

    ... 
    // onLocationChangedイベントでActivityへ通知
    inner class GPSLocationListener: LocationListener {
 
        override fun onLocationChanged(p0: Location?) {
            val format = SimpleDateFormat("kk:mm:ss")
            val msg="${format.format(Date())} lat:${p0?.latitude} lon:${p0?.longitude}"
            Log.d("locCheck",msg)
 
            sendMessage(msg);
         }
 
      ...
    }
 
    // Broadcastメイン
    fun sendMessage(msg: String) {
        val broadcast = Intent()
        broadcast.putExtra("message", msg)
        broadcast.action = "DO_ACTION"
        baseContext.sendBroadcast(broadcast)
    }