前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Activity基本用法

Activity基本用法

作者头像
wresource
发布2023-01-31 16:49:44
2.9K0
发布2023-01-31 16:49:44
举报
文章被收录于专栏:云服务器开发

一、Activity是什么

主要是进行用户之间交互的一个组件

二、Activity的基本用法

一般activity创建之后会有两个文件,一个是实现逻辑的kotlin文件或者java文件,一个表示当前activity对应的xml布局文件,用来展示界面

一般一个activity就有一个界面,当然activity需要在AndroidManifest文件中注册,不过这一切都会由android studio自动帮我们完成

Toast是一个比较常见的提示的函数,用来展示一些信息

Menu即菜单,可以作为菜单显示的一个好方法,不会占用太多的空间

finish即可销毁一个activity

三、使用Intent在Activity之间穿梭

主要分显式Intent和隐式Intent

显式Intent比较简单而且单一

代码语言:javascript
复制
val intent = Intent(context,Activity::class.java)
startActivity(intent)
//Activity::class.java 就相当于java里面的Activity.class

隐式的Intent比较灵活

有action,category,data三种信息,一般需要三种都匹配上才可以启动Intent

需要在Activity的AndroidManifest树里面添加信息,此外还可以利用Intent传递数据给上一个activity或者是下一个

四、Activity的生命周期

暂时只是停留在理论层面开发过程中很少遇到这种问题,希望以后通过实战了解的更深

五、Activity的启动模式

  • standard 默认的启动模式,可能会存在多个activity的相同实例
  • singleTop

确保只有一个activity处于栈顶,但同一个栈仍然会存在多个实例,例如两个相同activity实例不连续出现

  • singleTask

确保整个栈只会出现一个activity的实例,每当启动一个activity时先检查栈中是否存在此activity的实例,存在,则将此实例之上的其他activity的实例全部出栈,此activty直接位于栈顶,不存在,则直接创建一个新的实例。

  • singleInstance

每个activity都有一个自己的返回栈来进行管理activity的实例

六、Activity的最佳实践

利用javaClass.simplename这个api可以获取当前类的类名,创建一个baseActivity进行activity的管理,利用list进行操作,退出整个程序

七、Kotlin 课堂:标准函数和静态方法

标准函数

主要解决平时使用对象方法时的多次使用同一个对象的代码冗杂性,几个函数都可以将代码变得更加简洁

with

代码语言:javascript
复制
val result = with(obj){
    //调用方法
    add()//相当于obj.add()
  "value"//即最后一行作为with的返回值
}

run

代码语言:javascript
复制
val result = obj.run{
     //调用方法
    add()//相当于obj.add()
  "value"//即最后一行作为run的返回值
}

apply

代码语言:javascript
复制
val result = obj.apply{
    //调用方法
    add()//相当于obj.add()
    //返回值是对象本身,无法指定返回值
}

静态方法

一般的工具类会比较习惯于使用静态方法,kotlin没有提供直接静态的方法,但有许多可以替代的方法

例如使用单例类,不过缺点是类中的全部方法都会变成静态方法

代码语言:javascript
复制
object aaa{
    fun doAction1(){
        
    }
}

不过kotlin里面提供了另外一个解决方法,即使用companion object

代码语言:javascript
复制
class aaa{
    fun doAction1(){
        
    }
    companion object {
        fun doAction2(){
            
        }
    }
}

但此时doAction2方法并不是真正意义上的静态方法,是有companion提供的伴生类提供的对象,所以使用java去调用,并不能调用doAction2方法,下列使用注解使得其变成真正的静态方法

代码语言:javascript
复制
class aaa{
    fun doAction1(){
        
    }
    companion object {
        @JvmStatic
        fun doAction2(){
            
        }
        //这样doAction2就变成真正的静态方法
    }
}

还有一种方法是顶层方法,即没有定义在类中的方法,会被kotlin全部编译成静态方法

代码语言:javascript
复制
fun do(){
    
}

kotlin文件中直接调用do()方法即可

java文件中则需要调用 文件名.do() 方法

例如文件名是aaa.kt,则java里面应该调用aaaKt.do();

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 android 踩坑小天才 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Activity是什么
  • 二、Activity的基本用法
  • 三、使用Intent在Activity之间穿梭
  • 四、Activity的生命周期
  • 五、Activity的启动模式
  • 六、Activity的最佳实践
  • 七、Kotlin 课堂:标准函数和静态方法
    • 标准函数
      • 静态方法
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档