博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Blog-05-《一周快速上手Kotlin For Android》-之Broadcast用法
阅读量:6511 次
发布时间:2019-06-24

本文共 3791 字,大约阅读时间需要 12 分钟。

---《一周快速上手Kotlin For Android》简介

目前Kotlin已正式成为Android的官方语言,作为Android开发者来说,学习和了解Kotlin也是属于理所当然的事情,兴许你觉得Java对于你来说才是真正的开发”利器”,使用Java你能发挥更高的效率,当然,如果如此你还是可以继续使用Java来开发Android。但对于Kotlin来说,开发Android会变得更简单一些,因为Kotlin其实就是Android开发中的语法糖,采用更简短的代码,描述更多的逻辑而已。开发语言本身就没有对错和最优,每个开发语言被开发出来的时代背景不同,需要解决的主要问题也不同。选择适合你自己的就可以。

BroadcastReceiver工作过程

Java 发送广播:

public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Button btn_send = findViewById(R.id.btn_send);        btn_send.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intent = new Intent();                intent.setAction("ACTION_TEST");                intent.putExtra("VALUE", 123);                sendBroadcast(intent);            }        });    }}复制代码

Kotlin 发送广播:

class MainActivity : AppCompatActivity() {    override fun onCreate(savedInstanceState: Bundle?) {        super.onCreate(savedInstanceState)        setContentView(R.layout.activity_main)        val btn_send = findViewById

Java接收广播:

public class Main2Activity extends AppCompatActivity {    private static final String TAG = "Main2Activity";    private MyReceiver myReceiver;    private IntentFilter intentFilter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main2);        Log.d(TAG, "onCreate");        myReceiver = new MyReceiver();        intentFilter = new IntentFilter();        intentFilter.addAction("ACTION_TEST");        Intent intent = new Intent(this, MainActivity.class);        startActivity(intent);    }    @Override    protected void onResume() {        super.onResume();        registerReceiver(myReceiver, intentFilter);    }    @Override    protected void onDestroy() {        super.onDestroy();        unregisterReceiver(myReceiver);    }    private class MyReceiver extends BroadcastReceiver {        @Override        public void onReceive(Context context, Intent intent) {            if(intent.getAction().equals("ACTION_TEST")){                int value = intent.getIntExtra("VALUE", 0);                Log.i(TAG, "onReceive value: " + value);            }        }    }}复制代码

Kotlin接收广播:

class Main2Activity : AppCompatActivity() {    private var myReceiver: MyReceiver? = null    private var intentFilter: IntentFilter? = null    override fun onCreate(savedInstanceState: Bundle?) {        super.onCreate(savedInstanceState)        setContentView(R.layout.activity_main2)        Log.d(TAG, "onCreate")        myReceiver = MyReceiver()        intentFilter = IntentFilter()        intentFilter!!.addAction("ACTION_TEST”)        val intent = Intent(this, MainActivity::class.java)        startActivity(intent)    }    override fun onResume() {        super.onResume()        registerReceiver(myReceiver, intentFilter)    }    override fun onDestroy() {        super.onDestroy()        unregisterReceiver(myReceiver)    }    private inner class MyReceiver : BroadcastReceiver() {        override fun onReceive(context: Context, intent: Intent) {            if (intent.action == "ACTION_TEST") {                val value = intent.getIntExtra("VALUE", 0)                Log.i(TAG, "onReceive value: " + value)            }        }    }    companion object {        private val TAG = "Main2Activity"    }}复制代码
欢迎关注我的公众号,分享更多的原创文章,关于技术、关于感悟。 

转载于:https://juejin.im/post/5b27ccc66fb9a00e9c47d061

你可能感兴趣的文章
安装python包到指定虚拟环境
查看>>
力扣(LeetCode)21
查看>>
网页视频流m3u8/ts视频下载
查看>>
聊聊flink的TableFactory
查看>>
Python 基础起步 (十) 什么叫函数?
查看>>
每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
查看>>
8年软件测试工程师感悟——写给还在迷茫中的朋友
查看>>
5G一周热闻:华为夺联通5G大单,首张5G电话卡发放
查看>>
“迁移策略+新容器运行时”应对有状态应用的冷热迁移挑战
查看>>
使用Swoole加速Laravel(正式环境中)
查看>>
mockjs让前端开发独立于后端
查看>>
延迟脚本的方式
查看>>
1.4linux单用户模式下修改root密码和救援模式修改root密码
查看>>
微服务架构优缺点
查看>>
解读userenv的日志
查看>>
跨进程通信之Messenger
查看>>
ext3与ext4区别
查看>>
DHCP Snooping + Dynamic ARP Inspection(DAI) 配置
查看>>
使用应答文件安装域控制器
查看>>
UNIX/Linux 系统管理技术手册阅读(三)
查看>>