- 浏览: 197094 次
- 性别:
- 来自: 湖南
文章分类
最新评论
Android应用开发3
使用Bundle在Activity间传递数据
从源Activity 中传递数据
目标Activity 中获取数据
使用Bundle在Activity间传递数据2
从源请求Activity 中通过一个Intent 把一个服务请求传到目标Activity 中
在源请求Activity 中等待Intent 返回应答结果,通过重载onActivityResult()方法
第一个参数是你开启请求Intent时的对应请求码,可以自己定义。
第二个参数是目标Activity返回的验证结果码
第三个参数是目标Activity返回的Intent
目标Activity 中发送请求结果代码,连同源Activity 请求的数据一同绑定到Bundle
中通过Intent 传回源请求Activity 中
Log与DDMS(查看Log等信息)
Activity生命周期
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应用开发4使用Service
什么是服务(Service)
服务是运行在后台的一段代码。它可以运行在它自己的进程,也可以运行在其他应用程序的上下文
(context)里面,这取决于自身的需要。其他的组件可以绑定到一个服务(Service)上面,通过远程过程调
用(RPC)来调用这个方法。例如:媒体播放器的服务,当用户退出媒体选择用户界面,仍然希望音乐可以
继续播放,这时就是由服务(Service)来保证当用户界面关闭时音乐继续播放的。
如何使用服务
第一种是通过调用Context.startServece()启动,调用Context.stoptService()结束,startService()可以传递参
数给Service。
第二种方式是通过调用Context.bindService()启动,调用Context.unbindService()结束,还可以通过
ServiceConnection 访问Service。二者可以混合使用,比如说我可以先startServece()再unbindService()。
Service的生命周期
startService()后,即使调用startService()的进程结束了,Service 仍然还存在,知道有进程调用
stoptService(),或者Service 自己自杀(stopSelf())就没法了
bindService()后,Service 就和调用bindService()的进程同生共死,也就是说当调用bindService()的进
程死了,那么它bind 的Service 也要跟着被结束,当然期间也可以调用unbindService()让Service 结
束
两种方式混合使用时,比如说你startService()了,我bindService()了,那么只有你stoptService()了而
且我也unbindService()了,这个Service 才会被结束。
进程生命周期
Android 系统将会尝试保留那些启动了的或者时绑定了的服务进程
如果该服务正在进程的onCreate(),onStart()或者onDestroy()这些方法中执行时,那么主进程将会成为
一个前台进程,以确保此代码不会被停止
如果服务已经开始,那么它的主进程会就重要性而言低于所有可见的进程但高于不可见的进程,由
于只有少数几个进程是用户可见的,所以只要不是内存特别低,该服务不会停止。
如果有多个客户端绑定了服务,只要客户端中的一个对于用户是可见的,即认为该服务可见
使用服务进行音乐播放
Manifest.xml
中的Service
定义
Service 子类
中的Player
Activity 中定
义的Intent
开启相应的
Service
AndroidUI布局
Activity
Android 应用程序基本功能单元
本身没有任何屏幕存在
View 和Viewgroup
表示在Android 平台上的基本用户界面单元
Views
android.view.View
为指定的屏幕矩形区域存储布局和内容
处理尺寸和布局,绘制,焦点改变,翻屏,按键、手势
widget 基类
Viewgroups
android.view.Viewgroup
包含并管理下级系列的Views 和其他Viewgroup
布局的基类
UI树状结构
Android 中的Activity
定义使用一个view 和iewgroup 的树状节点
setContentView()方法
被Activity 调用来把树状节点连接到屏幕渲染
文本TextView 输入框EditText
输入法InputMethod 活动方法MovementMethod
按钮Button 单选按钮RadioButton
复选框Checkbox 滚动视图ScrollView
LayoutParams (布局参数)
每一个viewgroup 类使用一个继承于ViewGroup.LayoutParams 的嵌套类
包含定义了子节点View 的尺寸和位置的属性类型
普通布局对象
FrameLayout
最简单的布局对象
在屏幕上故意保留的空白空间,你可以之后填充一个单独的对象
例如:一个你要更换的图片
所有子元素都钉到屏幕的左上角
不能为子元素指定位置
LinearLayout
在一个方向上(垂直或水平)对齐所有子元素
所有子元素一个跟一个地堆放
一个垂直列表每行将只有一个子元素(无论它们有多宽)
一个水平列表只是一列的高度(最高子元素的高度来填充)
TableLayout
把子元素放入到行与列中
不显示行、列或是单元格边界线
单元格不能横跨行,如HTML 中一样
AbsoluteLayout
使子元素能够指明确切的X / Y 坐标显示在屏幕上
(0,0)是左上角
当你下移或右移时,坐标值增加
允许元素重叠(但是不推荐)
注意:
一般建议不使用AbsoluteLayout 除非你有很好的理由来使用它
因为它相当严格并且在不同的设备显示中不能很好地工作
RelativeLayout
让子元素指定它们相对于其他元素的位置(通过ID 来指定)或相对于父布局对象
AndroidManifest.xml 中修改程序布局的Theme 主题
使用Bundle在Activity间传递数据
从源Activity 中传递数据
//数据写入Intent Intent openWelcomeActivityIntent=new Intent(); Bundle myBundelForName=new Bundle(); myBundelForName.putString("Key_Name",inName.getText().toString()); myBundelForName.putString("Key_Age",inAge.getText().toString()); openWelcomeActivityIntent.putExtras(myBundelForName); openWelcomeActivityIntent.setClass(AndroidBundel.this, Welcome.class); startActivity(openWelcomeActivityIntent);
目标Activity 中获取数据
//从Intent 中获取数据 Bundle myBundelForGetName=this.getIntent().getExtras(); String name=myBundelForGetName.getString("Key_Name"); myTextView_showName.setText("欢迎您进入:"+name);
使用Bundle在Activity间传递数据2
从源请求Activity 中通过一个Intent 把一个服务请求传到目标Activity 中
private Intent toNextIntent;//Intent 成员声明 toNextIntent=new Intent();//Intent 定义 toNextIntent.setClass(TwoActivityME3.this, SecondActivity3.class); //设定开启的下一个Activity startActivityForResult(toNextIntent, REQUEST_ASK); //开启Intent 时候,把请求码同时传递
在源请求Activity 中等待Intent 返回应答结果,通过重载onActivityResult()方法
第一个参数是你开启请求Intent时的对应请求码,可以自己定义。
第二个参数是目标Activity返回的验证结果码
第三个参数是目标Activity返回的Intent
目标Activity 中发送请求结果代码,连同源Activity 请求的数据一同绑定到Bundle
中通过Intent 传回源请求Activity 中
Log与DDMS(查看Log等信息)
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub super.onActivityResult(requestCode, resultCode, data); if(requestCode==REQUEST_ASK){ if(resultCode==RESULT_CANCELED){ setTitle("Cancel****"); }else if(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=new Intent(); stringBundle=new Bundle(); stringBundle.putString("myName", Name); backIntent.putExtras(stringBundle); setResult(RESULT_OK, backIntent);//返回Activity结果码 finish();
Log.v("TAG", "nextPage_Activity onStart()");//设置标签来跟踪程序
Activity生命周期
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应用开发4使用Service
什么是服务(Service)
服务是运行在后台的一段代码。它可以运行在它自己的进程,也可以运行在其他应用程序的上下文
(context)里面,这取决于自身的需要。其他的组件可以绑定到一个服务(Service)上面,通过远程过程调
用(RPC)来调用这个方法。例如:媒体播放器的服务,当用户退出媒体选择用户界面,仍然希望音乐可以
继续播放,这时就是由服务(Service)来保证当用户界面关闭时音乐继续播放的。
如何使用服务
第一种是通过调用Context.startServece()启动,调用Context.stoptService()结束,startService()可以传递参
数给Service。
第二种方式是通过调用Context.bindService()启动,调用Context.unbindService()结束,还可以通过
ServiceConnection 访问Service。二者可以混合使用,比如说我可以先startServece()再unbindService()。
Service的生命周期
startService()后,即使调用startService()的进程结束了,Service 仍然还存在,知道有进程调用
stoptService(),或者Service 自己自杀(stopSelf())就没法了
bindService()后,Service 就和调用bindService()的进程同生共死,也就是说当调用bindService()的进
程死了,那么它bind 的Service 也要跟着被结束,当然期间也可以调用unbindService()让Service 结
束
两种方式混合使用时,比如说你startService()了,我bindService()了,那么只有你stoptService()了而
且我也unbindService()了,这个Service 才会被结束。
进程生命周期
Android 系统将会尝试保留那些启动了的或者时绑定了的服务进程
如果该服务正在进程的onCreate(),onStart()或者onDestroy()这些方法中执行时,那么主进程将会成为
一个前台进程,以确保此代码不会被停止
如果服务已经开始,那么它的主进程会就重要性而言低于所有可见的进程但高于不可见的进程,由
于只有少数几个进程是用户可见的,所以只要不是内存特别低,该服务不会停止。
如果有多个客户端绑定了服务,只要客户端中的一个对于用户是可见的,即认为该服务可见
使用服务进行音乐播放
Manifest.xml
中的Service
定义
<service android:name=".Music"> <intent-filter> <action android:name="com.liangshan.wuyong.START_AUDIO_SERVICE" /> <category android:name="android.intent.category.default" /> </intent-filter> </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"));
stopService(new Intent("com.liangshan.wuyong.START_AUDIO_SERVICE"));
AndroidUI布局
Activity
Android 应用程序基本功能单元
本身没有任何屏幕存在
View 和Viewgroup
表示在Android 平台上的基本用户界面单元
Views
android.view.View
为指定的屏幕矩形区域存储布局和内容
处理尺寸和布局,绘制,焦点改变,翻屏,按键、手势
widget 基类
Viewgroups
android.view.Viewgroup
包含并管理下级系列的Views 和其他Viewgroup
布局的基类
UI树状结构
Android 中的Activity
定义使用一个view 和iewgroup 的树状节点
setContentView()方法
被Activity 调用来把树状节点连接到屏幕渲染
文本TextView 输入框EditText
输入法InputMethod 活动方法MovementMethod
按钮Button 单选按钮RadioButton
复选框Checkbox 滚动视图ScrollView
LayoutParams (布局参数)
每一个viewgroup 类使用一个继承于ViewGroup.LayoutParams 的嵌套类
包含定义了子节点View 的尺寸和位置的属性类型
普通布局对象
FrameLayout
最简单的布局对象
在屏幕上故意保留的空白空间,你可以之后填充一个单独的对象
例如:一个你要更换的图片
所有子元素都钉到屏幕的左上角
不能为子元素指定位置
LinearLayout
在一个方向上(垂直或水平)对齐所有子元素
所有子元素一个跟一个地堆放
一个垂直列表每行将只有一个子元素(无论它们有多宽)
一个水平列表只是一列的高度(最高子元素的高度来填充)
TableLayout
把子元素放入到行与列中
不显示行、列或是单元格边界线
单元格不能横跨行,如HTML 中一样
AbsoluteLayout
使子元素能够指明确切的X / Y 坐标显示在屏幕上
(0,0)是左上角
当你下移或右移时,坐标值增加
允许元素重叠(但是不推荐)
注意:
一般建议不使用AbsoluteLayout 除非你有很好的理由来使用它
因为它相当严格并且在不同的设备显示中不能很好地工作
RelativeLayout
让子元素指定它们相对于其他元素的位置(通过ID 来指定)或相对于父布局对象
AndroidManifest.xml 中修改程序布局的Theme 主题
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="zyf.GridViewTest" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:theme="@android:style/Theme.Light" android:label="@string/app_name" > <activity android:name=".GridViewTest" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-sdk android:minSdkVersion="2" /> </manifest>
- 新版Android开发教程_笔记六--应用3、4_布局.pdf (3.1 MB)
- 下载次数: 1
发表评论
-
Android 基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果
2015-12-18 22:23 479转载请注明出处:http:// ... -
android arcgis map应用
2013-10-14 20:11 13471 符号渲染 1.1 Symbol Symbol主要是对Gr ... -
lost android 开发教程二
2012-04-19 13:13 1827第二季课程介绍 1、控件使用方法介绍 Sprinner, ... -
android基础
2011-08-10 21:23 996lost in android Linux 环境 ... -
3G应用开发之Android
2011-04-10 21:12 1623什么是3G 3G,全称为3rd Generation,中文含义 ... -
扫雷游戏
2011-02-25 16:32 1213MineSweeper是一个不错的Android开源扫雷游戏, ... -
应用、permission、资源
2011-02-25 13:45 1441应用 为程序添加Menu菜单 //创建OptionsMenu ... -
文件存取、数据库编程
2011-02-25 13:41 692文件存取、数据库编程 -
新版Android开发可视化UI设计DroidDraw
2011-02-24 15:16 1215新版Android开发可视化UI设计DroidDraw -
Android 基础UI编程4
2011-02-23 11:39 1370Android 基础UI编程 专业相框设计 ImageView ... -
Android UI编程基础3
2011-02-23 09:11 1058Android UI编程基础 EditText 与TextVi ... -
Android 基础UI编程2
2011-02-21 10:29 1041Android 基础UI编程 标题、状态栏的隐藏 标题栏隐藏 ... -
Android 基础UI编程1
2011-02-18 15:45 923Android 基础UI编程 更改与显示文字标签 TextVi ... -
Android 模拟器
2011-02-17 15:40 1431Android 模拟器 模拟器参数 参数格式 option 选 ... -
Android开发--Dalvik ADB
2011-02-17 10:41 1503Android虚拟机Dalvik Dalvik冲击 随着Goo ... -
Android开发环境搭建
2011-02-17 09:38 1311Android开发环境搭建 ADV的创建 ADT0.9.1 版 ... -
基础入门一
2011-02-17 09:12 1052开放手机联盟--Open HandsetAlliance 什么 ...
相关推荐
NULL 博文链接:https://zzqrj.iteye.com/blog/1124604
1、Android01--搭建Android开发环境 2、Android02--认识Activity 3、Android03--Context和Application 4、Android04--Android服务 5、Android05--Android服务通信 6、Android06--Android广播接收器 7、Android07--...
对应博文:http://blog.csdn.net/iwanghang/article/details/53081519
这是一款猜歌APP,专为初学者设计和开发的一个小型的项目,对初学者学习开发Android项目非常有帮助,代码中注释也非常详细。
android 开发 培训-布局实战
Android开发实验---通讯录 实验报告 通讯录 姓名: 学号: 课程名称: 移动应用开发 所在学院: 信息科学与工程学院 专业班级: 计算机 任课教师: Android开发实验---通讯录全文共25页,当前为第1页。 Android开发...
老罗Android开发视频教程源代码,包括入门介绍--常用UI布局介绍--百度地图实战开发--HTTP协议编程
【第一版第二章】老罗Android开发视频--常用UI布局介绍(5集) 【第一版第三章】老罗Android开发视频--HTTP协议编程(4集) 【第一版第四章】老罗Android开发视频--解析XML数据(3集) 【第一版第五章】老罗...
新版Android开发教程+笔记六--应用3、4 布局.pdf 新版Android开发教程+笔记七--基础UI编程1.pdf 新版Android开发教程+笔记八--基础UI编程2.pdf 新版Android开发教程+笔记九--基础UI编程3.pdf 新版Android开发教程+...
Android程序源码--表格框架布局, 表格框架布局Android程序源码
第3章 Android UI开发 -3.1Android UI布局代码(1).zip
测试用例,测试在Android屏幕旋转时改变布局并保存Activity状态,以及监听屏幕旋转事件。
• 风格是一个包含一种或者多种格式化属性的集合,你可以将其用为一个单位用在布局XML单个元素 当中。比如,你可以定义一种风格来定义文本的字号大小和颜色,然后将其用在View元素的一个 特定的实例。 • 主题是一个...
新版Android开发教程+笔记六--应用3、4 布局 新版Android开发教程+笔记七--基础UI编程1 新版Android开发教程+笔记八--基础UI编程2 新版Android开发教程+笔记九--基础UI编程3 新版Android开发教程+笔记十--基础UI编程...
Android布局显示模板加载,空,错误等状态
a、创建一个Android项目,然后创建一个FlowLayout继承于ViewGroup: public class FlowLayout extends ViewGroup { /** 因为只在代码中直接new,所以创建这个构造方法就可以了 */ public FlowLayout(Context ...
Android-02-常用UI布局介绍(5集) Android-03-百度地图实战开发(10集) Android-04-HTTP协议编程(4集) Android-05-解析XML数据(3集) Android-06-解析JSON数据(4集) Android-07-服务器端JDBC编程(2集) ...