MainActivity.kt --->
package com.example.fredric.localbroadcastreceiver
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.support.v4.content.LocalBroadcastManager
import android.widget.Button
import android.widget.Toast
class MainActivity : AppCompatActivity() {
var intentFilter: IntentFilter? = null
var localReceiver: LocalReceiver? = null
var localBroadcastManager: LocalBroadcastManager? = null
var sendLocalBroadcastBtn: Button? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
localBroadcastManager = LocalBroadcastManager.getInstance(this)
sendLocalBroadcastBtn = findViewById<Button>(R.id.send_local_broadcast)
sendLocalBroadcastBtn?.setOnClickListener({
var intent = Intent("com.example.broadcasttest.LOCAL_BROADCAST")
localBroadcastManager?.sendBroadcast(intent)
})
intentFilter = IntentFilter()
intentFilter?.addAction("com.example.broadcasttest.LOCAL_BROADCAST")
localReceiver = LocalReceiver()
localBroadcastManager?.registerReceiver(localReceiver,intentFilter)
}
override fun onDestroy() {
super.onDestroy()
localBroadcastManager?.unregisterReceiver(localReceiver)
}
class LocalReceiver : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
Toast.makeText(context,"receive local broadcast!!",Toast.LENGTH_SHORT).show()
}
}
}
package com.example.fredric.localbroadcastreceiver
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.support.v4.content.LocalBroadcastManager
import android.widget.Button
import android.widget.Toast
class MainActivity : AppCompatActivity() {
var intentFilter: IntentFilter? = null
var localReceiver: LocalReceiver? = null
var localBroadcastManager: LocalBroadcastManager? = null
var sendLocalBroadcastBtn: Button? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
localBroadcastManager = LocalBroadcastManager.getInstance(this)
sendLocalBroadcastBtn = findViewById<Button>(R.id.send_local_broadcast)
sendLocalBroadcastBtn?.setOnClickListener({
var intent = Intent("com.example.broadcasttest.LOCAL_BROADCAST")
localBroadcastManager?.sendBroadcast(intent)
})
intentFilter = IntentFilter()
intentFilter?.addAction("com.example.broadcasttest.LOCAL_BROADCAST")
localReceiver = LocalReceiver()
localBroadcastManager?.registerReceiver(localReceiver,intentFilter)
}
override fun onDestroy() {
super.onDestroy()
localBroadcastManager?.unregisterReceiver(localReceiver)
}
class LocalReceiver : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
Toast.makeText(context,"receive local broadcast!!",Toast.LENGTH_SHORT).show()
}
}
}
AndroidManifest.xml --->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<Button
android:id="@+id/send_local_broadcast"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Send Local Broadcast"
android:textAllCaps="false"/>
</LinearLayout>
成图效果:
评论
发表评论