Android第一行代码学习笔记

第一章-开始启程 你的第一行代码

日志工具 Log

Log,v
Log.d
Log.i
Log.w
Log.e
控制台上可以通过 Edit Filter Configuration自定义过滤器

第2章 从看得到的入手——探究活动


Toast使用方法:

makeText()创建 调用show()

3个参数:

  • Context(Activity本身就是一个Context)

  • 显示的文本内容

  • 显示的时长


Menu
  1. 在res中建menu 在menu中创建main,xml
  2. 在Activity中重写 onCreateOptionsMenu方法 再调用getMenuInflater方法得到MenuInflater对象 再调用其inflate()方法

inflate()方法两个参数

  • 通过那一个资源文件来创建菜单
  • 菜单项将添加到哪一个Menu对象中

销毁活动

finish();


Intent

组件交互,指明当前组件要执行的侗族,在不同的组件之间传递数据

使用显式Intent方法:

1.构建意图
Intent(Context packageContext,Class<?>cls)
两个参数

  • 启动活动的上下文
  • 想要启动的目标函数
    2.使用意图
    startActivity()方法适用于启动活动的,让他接收一个Intent参数
    (将Intent传入startActivity中即可)
使用隐式Intent方法:

不明确指出活动 通过指定action category 交由系统分析Intent 选择合适的活动
使用方法:

  1. 在manifest里 通过在里配置内容 指定action 和category
    2.Intent( 包名 .ACTION_START)

启动其他程序(多程序之间功能共享)
1.指定intent的action
2.Uri.prase方法将网址字符串解析成uri对象
3.调用setData()方法 将对象传进去

标签中盘配置标签 指定活动响应什么类型的数据

  • scheme写一部分 如http
  • host 主机名 如www.baidu.com
  • port 数据端口部分 紧随主机名之后
  • path 主机名和端口之后的部分
  • mimeType 指定可以处理的数据类型(通配符)

传递数据

1. 把想要传递的数据暂存在Intent中
2.启动另一个活动后 把这些数据再从Intent中取出就可以了

putExtra方法
两个参数:1.键 从Intent中取值
2.真正要传递的数据

String data="Hello SecondActivity";Intent intent=new Intent (MainActivity.this,SecondActivity.class);intent.putExtra("extra_data",data);
Intent intent=getIntent();、String data= intent.getStringExtra ("extra_data");Log.d("SecondActivity",data);

活动销毁时返回数据给上一个活动

startActivityForResutl() 启动活动并期望在活动销毁的时候能够返回结果给上一个活动
两个参数:

  • Intent
  • 请求码(判断数据来源)
    再被启动的活动被销毁之后会回调上一个活动的onActivityResutl方法
    3个参数:
  • requestCode 启动活动时传入的请求码
  • resultCode 返回数据时传入的处理结果
  • data 携带返回数据的Intent
    步骤:1通过requestCode判断数据来源
    2.通过resultCode判断处理结果是否成功
    3.从data中取值并打印

setResult() 向上一个活动返回数据
两个参数

  • 向上一个活动返回处理结果 RESULT_OK RESULT_CANCELED
  • 把带有数据的Intent传递回去

按back键返回 数据 用onBackPressesd方法


返回栈

活动状态

1.运行2.暂停(不处于栈顶但仍然可见)3.停止4.销毁

生存期

onCreate() 初始化
onStart() 不可见变可见时调用
onResume() 准备好和用户交互时调用 栈顶 运行
onPause() 系统准备去其启动或恢复另一个活动时调用 释放一些资源 保存一些关键数据
onStop() 完全不可见时调动
onDestory() 被销毁前调用 之后活动状态变为销毁状态
onRestart() 停止状态变为运行状态之前调用

活动的三个生存期

完整生存期 :Create到Destory 初始化到释放内存
可见生存期 :Start到stop 活动对用户可见 可能无法交互
管理资源 加载 释放
前台生存期 :Resume到Pause之间 运行状态 可交互


onSaveInstanceState() 保证在活动被回收之前一定会被调用(解决活动被回收时临时数据得不到保存的问题)
两个参数
1.键 用于从Bundle中取值
2.真正要保存的内容

活动的启动方式

在AndroidManifest.xml中通过给标签指定 android:launchMode属性来选择启动

  • standard 每启动一个新活动都会在返回栈中入栈,并处于站定
    系统不会在乎这个活动是否已经在返回栈中存在,每次启动都会新建一个

  • singleTop 在启动活动时发现是栈顶活动,则认为可以直接使用 不会创建新的活动

  • singleTask 启动活动时系统检查返回栈中是否存在该活动的实例,如果存在则直接使用该实例,并把这个活动之上的所有活动出栈。没有发现的话就创建一个新的活动实例。
    (指定了不同的taskAffinity也会启用一个新的返回栈)

  • singleInstance 启用一个新的返回栈(为了允许其他程序可以调用某程序中的活动 共享活动实例)


实践Tips

知晓当前活动
1.新建一个class 继承AppCompatActivity
2.并在OnCreate()中获得当前实例的类名 getClass().getSimpleName
3.其他Activity继承这个class
随时随地退出程序:用专门的集合类对活动管理
ActivityCollector类中用List暂存活动
addActivity() 向List中添加一个活动
removeActivity() 从List中移除活动
finishAll() 全销毁
在想要退出的地方调用ActivityCollector.finishAll()

杀掉进程 killProcess 1个参数:进程id 通过myPid()方法获得当前程序的进程id

启动活动的最佳写法:actionStart()
在该方法中构建Intent 通过actionStart()传递需要的参数 最后调用startActivity启动活动


更多相关文章

  1. Android之自定义Dialog屏幕旋转时自动关闭解决方法
  2. Android客户端和服务器端数据交互的第一种方法
  3. Android JNI和NDK学习(06)--JNI的数据类型
  4. Android Zxing 转换竖屏扫描且提高识别率的方法
  5. 关于Android的模拟器不能正常启动的解决方法
  6. android 杀死进程的三种方法
  7. android raw读取超过1M文件的方法
  8. 下载android的linux内核的方法

随机推荐

  1. Android(安卓)解决支付宝对接问题com.ali
  2. android 短信格式
  3. 【简单的学生管理界面】Android的Activit
  4. Handler、Looper与MessageQueue源码分析
  5. Android(安卓)刷机Nexus5 4.4.3
  6. Android获取Contact Number的例子
  7. 仿qq未读消息
  8. 关于Android的几种事件处理
  9. Android(安卓)浅析 EventBus (一) 使用
  10. Android获取手机联系人的方法