拒绝被打扰,安卓之如何优雅的写出启动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,再也不会因为这点小事而麻烦你了!

结语

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

相关文章
|
Android开发 开发者
Android自定义view之利用drawArc方法实现动态效果
本文介绍了如何通过Android自定义View实现动态效果,重点使用`drawArc`方法完成圆弧动画。首先通过`onSizeChanged`进行测量,初始化画笔属性,设置圆弧相关参数。核心思路是不断改变圆弧扫过角度`sweepAngle`,并调用`invalidate()`刷新View以实现动态旋转效果。最后附上完整代码与效果图,帮助开发者快速理解并实践这一动画实现方式。
336 0
|
存储 Shell Android开发
基于Android P,自定义Android开机动画的方法
本文详细介绍了基于Android P系统自定义开机动画的步骤,包括动画文件结构、脚本编写、ZIP打包方法以及如何将自定义动画集成到AOSP源码中。
1290 2
基于Android P,自定义Android开机动画的方法
|
安全 数据库 Android开发
在Android开发中实现两个Intent跳转及数据交换的方法
总结上述内容,在Android开发中,Intent不仅是活动跳转的桥梁,也是两个活动之间进行数据交换的媒介。运用Intent传递数据时需注意数据类型、传输大小限制以及安全性问题的处理,以确保应用的健壯性和安全性。
751 11
|
Android开发
基于android-11.0.0_r39,系统应用的手动签名方法和过程
本文介绍了基于Android 11.0.0_r39版本进行系统应用手动签名的方法和解决签名过程中遇到的错误,包括处理`no conscrypt_openjdk_jni-linux-x86_64`和`RegisterNatives failed`的问题。
1115 2
|
缓存 Java Shell
Android 系统缓存扫描与清理方法分析
Android 系统缓存从原理探索到实现。
1144 15
Android 系统缓存扫描与清理方法分析
|
XML Android开发 数据格式
android中两个Activity同时设定了intent-filter的category为android.intent.category.LAUNCHER,会发生什么情况?
本文通过案例分析了在Android中当两个Activity都设置了`android.intent.category.LAUNCHER`类别时,会导致它们同时在应用启动器的"所有应用"页面显示为不同的启动入口。
705 2
android中两个Activity同时设定了intent-filter的category为android.intent.category.LAUNCHER,会发生什么情况?
|
Android开发
Android面试之Activity启动流程简述
Android面试之Activity启动流程简述
422 6
|
消息中间件 Android开发 索引
Android面试高频知识点(4) 详解Activity的启动流程
Android面试高频知识点(4) 详解Activity的启动流程
537 3
|
缓存 前端开发 Android开发
Android实战之如何截取Activity或者Fragment的内容?
本文首发于公众号“AntDream”,介绍了如何在Android中截取Activity或Fragment的屏幕内容并保存为图片。包括截取整个Activity、特定控件或区域的方法,以及处理包含RecyclerView的复杂情况。
495 3
|
消息中间件 Android开发 索引
Android面试高频知识点(4) 详解Activity的启动流程
讲解Activity的启动流程了,Activity的启动流程相对复杂一下,涉及到了Activity中的生命周期方法,涉及到了Android体系的CS模式,涉及到了Android中进程通讯Binder机制等等, 首先介绍一下Activity,这里引用一下Android guide中对Activity的介绍:
560 4

热门文章

最新文章