Blog-05-《一週快速上手Kotlin For Android》-
---《一週快速上手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"
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2730/viewspace-2811599/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 幾個特性,快速上手KotlinKotlin
- 充分理解Kotlin,快速上手寫業務Kotlin
- Android BLE 快速上手指南Android
- 快速切換至Kotlin for Android模式KotlinAndroid模式
- 快速上手Kotlin開發-張濤-極客時間Kotlin
- 快速上手系列--Android應用開發模板Android
- Vue同構(一): 快速上手Vue
- 極簡Kotlin-For-Android(一)KotlinAndroid
- Redis 快速上手Redis
- JDBC快速上手JDBC
- Flask快速上手Flask
- Maven快速上手Maven
- gtest快速上手
- 快速上手BootstrapVuebootVue
- docker 快速上手Docker
- ElasticJob 快速上手AST
- 快速上手第一個智慧合約
- Flask之旅: 快速上手Flask
- Ansible awx 快速上手
- SpringBoot-快速上手Spring Boot
- 快速上手之dockerDocker
- Vue框架快速上手Vue框架
- 【On Nacos】快速上手Nacos
- 快速上手——我用scrapy寫爬蟲(一)爬蟲
- Vue入門指南-05 Vue例項的生命週期(快速上手vue)Vue
- 快速上手Ajax【一篇文章就搞懂】
- 萬物皆可快速上手之Electron(第一彈)
- 一文快速上手-Vue CLI腳手架Vue
- 使用Kotlin高效地開發Android App(一)KotlinAndroidAPP
- Docker 快速上手指南Docker
- 快速上手Linux核心命令Linux
- 快速上手前端框架layui前端框架UI
- Spring-Boot快速上手Springboot
- gdb除錯快速上手除錯
- Vue3快速上手Vue
- Apifox(2)快速上手apifoxAPI
- LLaMA快速上手指南
- 快速上手 vue3Vue