拒绝被打扰,安卓之如何优雅的写出启动Activity方法

简介: 工作中每个人都要负责自己的那一块任务,有时候我们前一个工作如果没处理好,后续他人如果接手就容易出现看不懂你写的东西而来询问你的情况。

情景再现

背景

工作中每个人都要负责自己的那一块任务,有时候我们前一个工作如果没处理好,后续他人如果接手就容易出现看不懂你写的东西而来询问你的情况。

就如启动Activity,由于这个Activity是别人负责写的,我就会感到很迷茫,因为我不知道需要传递哪些必要的参数进去才能正确启动该Activity。

正常情形

比如OtherActivity需要两个非常重要的参数,知道的情况下就很容易写出启动代码:

val intent = Intent(this, OtherActivity::class.java)
intent.putExtra("oneParam", "data1")
intent.putExtra("twoParam", "data2")
startActivity(intent)

通过Intent构建出当前“意图”(借助Intent传递两个必须的参数),然后调startActivity()或startActivityForResult()方法即可将Activity启动。

问题浮现

可是事情往往不会这样发展,这个要不是你自己开发的Activity,那你要么得仔细去阅读一遍该Activity代码,要么直接去询问那位写这个Activity的同事,你询问别人着实挺方便,但别人要问你,那可就麻烦了,因为你写过的可不会是一个两个Activity,大多数情况最后你自己都不太清楚了,如果你自己再去回顾一遍,很可能就会耽误你手上的工作了,所以我们如何去避免这种情况呢?下面就来谈谈怎么才能拒绝被打扰,让我们优雅的写出Activity启动方法吧。

解决方案

该问题的核心就是你写过的Activity别人无法快速知晓要传递多少参数?所以最佳写法当然是直接明确告诉他/她喽。如下,我们在自己负责的Activity中直接写上启动方法:

class OtherActivity : BaseActivity() {
    ...
    companion object {
        fun actionStart(context: Context, data1: String, data2: String) {
            val intent = Intent(context, OtherActivity::class.java)
            intent.putExtra("oneParam", data1)
            intent.putExtra("twoParam", data2)
            context.startActivity(intent)
        }
    }
}

其中companion object是Kotlin规定的只要定义在这里面的方法都可以使用类似于Java静态方法的形式调用,而我们在上述代码中写了actionStart()方法,里面是我们完整的调用OtherActivity方法,而这样写后,别人不需要阅读你的代码也不用问你,就可以知道,该Activity应该需要传递哪些参数如何正确启动,当然,调用方法是很简单的:

button1.setOnClickListener {
    OtherActivity.actionStart(this, "data1", "data2")
}

只需要调用方法这一句就可以轻松启动该Activity,再也不会因为这点小事而麻烦你了!

结语

尽管这是非常基础的,但因为很多人都不会想起来去做,所以麻烦就会越来越多,故精益求精实乃必要。

相关文章
|
2天前
|
Android开发 开发者
Android UI设计: 请解释Activity的Theme是什么,如何更改应用程序的主题?
Android UI设计: 请解释Activity的Theme是什么,如何更改应用程序的主题?
48 1
|
2天前
|
数据库 Android开发 开发者
Android基础知识:请解释Activity的生命周期。
Android基础知识:请解释Activity的生命周期。
47 2
|
7月前
|
存储 SQL 人工智能
Android Activity启动流程一:从Intent到Activity创建
Android Activity启动流程一:从Intent到Activity创建
|
2天前
|
XML Java Android开发
利用Bundle实现Android Activity间消息的传递
利用Bundle实现Android Activity间消息的传递
11 2
|
2天前
|
Android开发 数据库管理
Android如何在Activity和Service之间传递数据
Android如何在Activity和Service之间传递数据
11 3
|
2天前
|
Shell Android开发
Android Activity重写dump方法实现通过adb调试代码
Android Activity重写dump方法实现通过adb调试代码
16 0
|
2天前
|
Java Android开发
Android四大组件之Activity组件
Android四大组件之Activity组件
|
2天前
|
Android开发
[Android 四大组件] --- Activity
[Android 四大组件] --- Activity
27 1
|
2天前
|
Android开发
Android基础知识:什么是Fragment?与Activity的区别是什么?
Android基础知识:什么是Fragment?与Activity的区别是什么?
360 54
|
2天前
|
XML 安全 Java
Android Studio App开发入门之活动Activity中为活动补充附加信息讲解及实战(附源码 超详细必看)
Android Studio App开发入门之活动Activity中为活动补充附加信息讲解及实战(附源码 超详细必看)
37 0