android6开发 pdf,新版Android开发教程6.pdf

Android 编程基础 1 封面封面 Android 编程基础 2 AndroidAndroidAndroidAndroid 应用开发应用开发 3 3 3 3 使用使用 BundleBundleBundleBundle 在在 ActivityActivityActivityActivity 间传递数据间传递数据 从源 Activity 中传递数据 目标 Activity 中获取数据 使用使用 BundleBundleBundleBundle 在在 ActivityActivityActivityActivity 间传递数据间传递数据 2 2 2 2 从源请求 Activity 中通过一个 Intent 把一个服务请求传到目标 Activity 中 数据写入 Intent Intent openWelcomeActivityIntent newnewnewnew Intent Bundle myBundelForName newnewnewnew Bundle myBundelForName putString Key Name inName getText toString myBundelForName putString Key Age inAge getText toString openWelcomeActivityIntent putExtras myBundelForName openWelcomeActivityIntent setClass AndroidBundel thisthisthisthis Welcome classclassclassclass startActivity openWelcomeActivityIntent 从 Intent 中获取数据 Bundle myBundelForGetName thisthisthisthis getIntent getExtras String name myBundelForGetName getString Key Name myTextView showName setText 欢迎您进入 name privateprivateprivateprivate Intent toNextIntent Intent 成员声明 toNextIntent newnewnewnew Intent Intent 定义 toNextIntent setClass TwoActivityME3 thisthisthisthis SecondActivity3 classclassclassclass 设定开启的下一个Activity startActivityForResult toNextIntent REQUEST ASK 开启 Intent 时候 把请求码同时传递 Android 编程基础 3 在源请求 Activity 中等待 Intent 返回应答结果 通过重载 onActivityResult 方法 第一个参数是你开启请求Intent时的对应请求码 可以自己定义 第二个参数是目标Activity返回的验证结果码 第三个参数是目标Activity返回的Intent 目标 Activity 中发送请求结果代码 连同源 Activity 请求的数据一同绑定到 Bundle 中通过 Intent 传回源请求 Activity 中 LogLogLogLog 与与 DDMS DDMS DDMS DDMS 查看查看 LogLogLogLog 等信息等信息 Override protectedprotectedprotectedprotected voidvoidvoidvoid onActivityResult intintintint requestCode intintintint resultCode Intent data TODOTODOTODOTODO Auto generated method stub supersupersupersuper onActivityResult requestCode resultCode data ifififif requestCode REQUEST ASK ifififif resultCode RESULT CANCELED setTitle Cancel elseelseelseelse ifififif resultCode RESULT OK showBundle data getExtras 从返回的Intent中获得Bundle Name showBundle getString myName 从bundle中获得相应数据 text setText the name get from the second layout n Name backIntent newnewnewnew Intent stringBundle newnewnewnew Bundle stringBundle putString myName Name backIntent putExtras stringBundle setResult RESULT OK backIntent 返回Activity结果码 finish Log v TAG nextPage Activity onStart 设置标签来跟踪程序 Android 编程基础 4 ActivityActivityActivityActivity 生命周期生命周期 Activity 状态 当一个 Activity 在屏幕的最上层时 对堆栈的最顶端 它就是属于 active 或者 running 的状态 如果一个 Activity 失去焦点 focus 但还看得到它的画面 比如 一个新的 Activity 画面并不是全 屏幕或者它是一个半透明的情况 那失去焦点的 Activity 则处在 paused 的状态 像这个失去焦点的 Activity 它还是完全活着的 并没有消失 活着的意思是指 Activity 自己本身所有的状态及数据都还是存在的 也 跟窗口管理程序 window manager 保持联系着 像这种 paused 的 Activity 会在一种情况下消失 那就是当 系统的内存不够用之时 系统会自动判断 八部重要的 Activity 移除 如果一个 Activity 被其它的 Activity 完全的遮盖住时 它仍然保有全部的状态及数据 但因为它已 不再被使用者看见 所以它的画面是被隐藏起来的 画面不需要更新 当系统内存不足时 这种 stop 状态 的 Activity 时最先被系统考虑拿下来释放内存的 当一个 Activity 处于 pause 或 stop 的状态时 系统可以要求 Activity结束 finish 或直接移除 kill 它 当它需要再度呈现在使用者面前时 它必须要能完整的重新启动及回复先前的状态 Activity 状态转换图 Android 编程基础 5 AndroidAndroidAndroidAndroid 应用开发应用开发 4 4 4 4 使用使用 ServiceServiceServiceService 什么是服务 什么是服务 ServiceServiceServiceService 服务是运行在后台的一段代码 它可以运行在它自己的进程 也可以运行在其他应用程序的上下文 context 里面 这取决于自身的需要 其他的组件可以绑定到一个服务 Service 上面 通过远程过程调 用 RPC 来调用这个方法 例如 媒体播放器的服务 当用户退出媒体选择用户界面 仍然希望音乐可以 继续播放 这时就是由服务 Service 来保证当用户界面关闭时音乐继续播放的 如何使用服务如何使用服务 第一种是通过调用 Context startServece 启动 调用 Context stoptService 结束 startService 可以传递参 数给 Service 第二种方式是通过调用 Context bindService 启动 调用 Context unbindService 结束 还可以通过 ServiceConnection 访问 Service 二者可以混合使用 比如说我可以先 startServece 再 unbindService ServiceServiceServiceService 的生命周期的生命周期 startService 后 即使调用 startService 的进程结束了 Service 仍然还存在 知道有进程调用 stoptService 或者 Service 自己自杀 stopSelf 就没法了 bindService 后 Service 就和调用 bindService 的进程同生共死 也就是说当调用 bindService 的进 程死了 那么它 bind 的 Service 也要跟着被结束 当然期间也可以调用 unbindService 让 Service 结 束 两种方式混合使用时 比如说你 startService 了 我 bindService 了 那么只有你 stoptService 了而 且我也 unbindService 了 这个 Service 才会被结束 进程生命周期进程生命周期 Android 系统将会尝试保留那些启动了的或者时绑定了的服务进程 如果该服务正在进程的 onCreate onStart 或者 onDestroy 这些方法中执行时 那么主进程将会成为 一个前台进程 以确保此代码不会被停止 如果服务已经开始 那么它的主进程会就重要性而言低于所有可见的进程但高于不可见的进程 由 于只有少数几个进程是用户可见的 所以只要不是内存特别低 该服务不会停止 如果有多个客户端绑定了服务 只要客户端中的一个对于用户是可见的 即认为该服务可见 Android 编程基础 6 使用服务进行音乐播放使用服务进行音乐播放 Manifest xml 中的 Service 定义 Service 子类 中的 Player public void onStart Intent intent int startId super onStart intent startId player MediaPlayer create this R raw seven days player start public void onDestroy super onDestroy player stop Activity 中定 义 的 Intent 开启相应的 Service startService new Intent com liangshan wuyong START AUDIO SERVICE stopService new Intent com liangshan wuyong START AUDIO SERVICE Android 编程基础 7 AndroidAndroidAndroidAndroidUIUIUIUI 布局布局 ActivityActivityActivityActivity Android 应用程序基本功能单元 本身没有任何屏幕存在 ViewViewViewView 和和 ViewgroupViewgroupViewgroupViewgroup 表示在 Android 平台上的基本用户界面单元 ViewsViewsViewsViews android view View 为指定的屏幕矩形区域存储布局和内容 处理尺寸和布局 绘制 焦点改变 翻屏 按键 手势 widget 基类 ViewgroupsViewgroupsViewgroupsViewgroups android view Viewgroup 包含并管理下级系列的 Views 和其他 Viewgroup 布局的基类 UIUIUIUI 树状结构树状结构 Android 中的 Activity 定义使用一个 view 和 iewgroup 的树状节点 setContentView 方法 被 Activity 调用来把树状节点连接到屏幕渲染 文本 TextView输入框 EditText 输入法 InputMethod活动方法 MovementMethod 按钮 Button单选按钮 RadioButton 复选框 Checkbox滚动视图 ScrollView Android 编程基础 8 LayoutParamsLayoutParamsLayoutParamsLayoutParams 布局参数布局参数 每一个 viewgroup 类使用一个继承于 ViewGroup LayoutParams 的嵌套类 包含定义了子节点 View 的尺寸和位置的属性类型 普通布局对象普通布局对象 FrameLayout 最简单的布局对象 在屏幕上故意保留的空白空间 你可以之后填充一个单独的对象 例如 一个你要更换的图片 所有子元素都钉到屏幕的左上角 不能为子元素指定位置 LinearLayout 在一个方向上 垂直或水平 对齐所有子元素 所有子元素一个跟一个地堆放 一个垂直列表每行将只有一个子元素 无论它们有多宽 一个水平列表只是一列的高度 最高子元素的高度来填充 Android 编程基础 9 TableLayout 把子元素放入到行与列中 不显示行 列或是单元格边界线 单元格不能横跨行 如 HTML 中一样 AbsoluteLayout 使子元素能够指明确切的 X Y 坐标显示在屏幕上 0 0 是左上角 当你下移或右移时 坐标值增加 允许元素重叠 但是不推荐 注意 一般建议不使用 AbsoluteLayout 除非你有很好的理由来使用它 因为它相当严格并且在不同的设备显示中不能很好地工作 RelativeLayout 让子元素指定它们相对于其他元素的位置 通过 ID 来指定 或相对于父布局对象 Android 编程基础 10 AndroidManifest xml 中修改程序布局的 Theme 主题 Android 编程基础 11 封面封面

展开阅读全文

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值