android学习笔记

第一行代码第一天ACTIVITY

1.外层目录下的build.gradle文件
jcenter:一个代码托管仓库,我们后面要用到的许多开源项目都托管在上面,声明它后就可以引用它上面的开源项目
classpath:一个插件,表示构建的是Android项目
在这里插入图片描述
2.app目录下的build.gradle
apply:声明是库模块还是应用程序模块(库模块无法直接运行,只能作为代码库依赖其他APP模块运行)
android:对项目进行配置(SDK编译版本,项目构建工具的版本;项目包名,最低兼容的等信息)
buildTypes:指定生成测试版安装文件的配置以及正式版安装文件的配置
dependencies:指定当前项目所有依赖关系(本地依赖、库依赖、远程依赖)在这里插入图片描述
2.日志工具的使用
2.1Log(android.util.Log)提供了五个方法来供我们打印日志。

方法Log.v()Log.d()Log.i()Log.w()Log.e()
级别verbosedebuginfowarnerror

3.Activity
3.1手动创建活动
Generate Layout File:表示会自动为当前Activity创建一个对应的布局文件。
Launcher Activity:表示会将当前Activity设置为项目的主活动。
在这里插入图片描述
3.2创建和加载布局
(1)res目录下创建 layout目录和first_layout.xml文件(放一个Button)
(2)回到firstActivity,在onCreate()方法中添加setContentView(R.layout.first_layout);
(3)在AndroidManifest文件中注册(android studio自动完成)和配置(用标签配置主活动)


3.3在活动中使用Toast
Toast.makeText(FirstActivity.this, “You clicked Button1”,Toast.LENGTH_SHORT).show();
第一个参数是Context,Toast要求的上下文,第二个参数:提示内容,第三个参数:提示消息显示时间长短。
3.4在活动中使用Menu
(1)res目录下创建menu目录和main.xml文件(Menu resource file)
(2)重写onCreateOptionsMenu()方法:R.menu:指定我们通过哪一个资源文件来创建菜单,menu:指定菜单项将添加到哪一个Menu对象中,最后返回true(允许创建的菜单显示)
(3)定义菜单响应事件,通过onOptionsItemSelected()方法
在这里插入图片描述
4.Intent的使用
intent作用:可以指明当前组件想要执行的动作,在不同组件间传递数据,
intent应用场景:启动活动,启动服务,发送广播
4.1显式intent
Intent有多个构造函数的重载,其中一个是Intent(Context packageContext, Class<?> cls) 。这个构造函数接收两个参数,第一个参数Context 要求提供一个启动活动的上下文,第二个参数Class 则是指定想要启动的目标活动,通过这个构造函数就可以构建出Intent的“意图”,然后startActivity(intent) ,这样就可以跳转活动了
因为意图很明显,所以叫显示intent。
4.2隐式intent
4.2.1初步使用
(1)在目标活动 标签下配置 的内容,可以指定当前活动能够响应的action 和category
(2)在主活动中确定点击事件把action标签和category标签的内容传到Intent()和intent.addCategory()中。
4.2.2其他应用场景
(1)打开浏览器
Intent intent=new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(“http://www.baidu.com”));
startActivity(intent);
注:只要在其他活动中设置了action为android:name=“android.intent.action.VIEW”, <data android: scheme =“http” (Category为默认)也能响应打开网址事件
(2)向下一个活动传递数据
通过putExtra(“键”,“值”)方法把想要传递的数据存放在intent中在这里插入图片描述
通过getStringExtra(“键”)得到传入的数据。在这里插入图片描述
(3)返回数据给上一个活动
在firstactivity用startActivityForResult启动第二个活动,在secondactivity添加返回数据的逻辑setResult(),第一个参数用于向上一个活动返回处理结果(RESULT_OK或RESULT_CANCELED),最后重写firstactivity的onActivityResult方法接收数据
在这里插入图片描述
5.活动的生命周期
完整生存期:onCreate()方法和onDestroy()方法
可见生存期:onStart() 方法和onStop()方法之间所经历的,就是可见生存期。在可见生存期内,活动对于用户总是可见的,即便有可能无法和用户进行交互
前台生存期:onResume() 方法和onPause() 方法之间所经历的就是前台生存期。在前台生存期内,活动总是处于运行状态的,此时的活动是可以和用户进行交互的,我们平时看到和接触最多的也就是这个状态下的活动
创建3个活动分别为mainactivity,normalactivity和dialogactivity,Mainactivity随活动切换其生命周期变化如下表所示

运行程序onCreate()onStart() onResume
跳转到normalactivityonPause onStop()
BACK键返回mainactivityonCreate()onStart() onResume()
启动dialogactivityonPause()
BACK键退出对话框onResume()
BACK键退出程序onPause onStop()onDestroy()

6.活动的启动模式和应用
6.1启动模式详解
在实际开发中我们要根据特定的需求给每个活动指定恰当的启动模式。
(1)standard 每当启动一个新的活动,它就会在返回栈中入栈,并处于栈顶。对于使用standard模式的活动,系统不会在乎这个活动是否已经在返回栈中存在,每次启动都会创建该活动的一个新的实例。
(2)singleTop 在启动活动时判断该活动是否是栈顶活动,若是,可以直接使用它,不会再创建新的活动实例。
(3)singleTask 启动活动时返回栈中检查是否存在该活动的实例(遍历),如果存在则直接使用该实例,并把在这个活动之上的所有活动统统出栈(活动之下的不管它),如果没有发现就会创建一个新的活动实例。
(4)singleInstance 活动会启用一个新的返回栈来管理这个活动(跳出当前返回栈),为了共享活动实例
6.2随时随地退出程序
首先声明一个List(public static List activities = new ArrayList<>()),然后通过addActivity() 方法用于向List中添加一个活动,用removeActivity()来移除活动,最后提供了一个finishAll()来退出程序
不管你想在哪个activity退出程序,只需要调用ActivityCollector.finishAll()就行了
6.3启动活动最佳写法
在要目的活动添加了一个actionStart() 方法,在这个方法中完成需求,根据方法参数来启动活动。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值