当前位置:首页 > 基于Android平台的天气预报系统的设计与开发毕业论文
Android组件,Service与Activity的区别在于:Service通常在后台运行,它不需要与用户进行交互,因此Service没有用户界面。与Activity需要继承Activity的基类一样,Service同样也需要继承Service基类。当一个Service组件在后台运行起来后,它就会和Acitivity同样也有自己的生命周期。Service组件通常用于为一些不需要界面但是又必须在后台运行的程序提供服务,比如音乐或者音频播放软件。
3. Broadcast Receiver 中文意思是广播接收者,顾名思义它主要就是用来接收来自广播和系统中的应用程序发送的消息。在Android中广播的用处非常广泛,例如当开机后会自动产生一条广播,接收到这条广播后系统就能及时的做出提示和保存数据等操作;当电池电量低的时候系统也会产生一条广播,这样就能及时提示用户进行充电等的操作。本质上Broadcast Receiver就是一种全局的监听器,我们用它来监听系统向应用程序发送的广播消息。基于以上所述我们可以用它非常方便的实现系统中不同组件之间的相互通信。
4.Content Provider 它是不同APP之间进行交换数据的核心的API , Content Provider在系统中以某种URI的形式对外提供数据,允许其他应用查询或者修改数据;其他应用程序使用Content Resolver根据URI去访问和操作指定的数据。事实上这里有一个简单的类比:可以把Content Provider看作安卓系统内部提供的一个网站,这个网站以固定的URI对外提供服务;而Content Resolver可以当成系统内部的HttpClient,它可以向指定的URI发送请求,这种请求最后委托给Content Provider处理,从而实现对网站内部数据进行操作。 3.3 小结
本单元主要概括了关于Android平台的三个方面的内容:1.Google android移动平台的概述2.google android移动平台开发过程的研究3.Google android移动平台下的应用研究,概要的介绍了Google android移动平台相关知识,4.介绍
5
了Android平台下的四大组件的相关内容。通过本章我们对Google android移动平台有初步的认识和了解,为后面的开发做了坚实的基础。
4.天气预报程序设计
4.1 Android的UI界面的实现
在Android中用户界面都是布局在XML文件中的。这些XML文件放在工程/res/layout下面。这对以前熟悉java可视化编程的人来说可能有些不太习惯。可能有人疑问为什么要把布局文件放在XML文件里呢?其实有过web基础的都应该知道mvc框架,这是一种用于网站开发的非常优秀的思想,在安卓系统中,安卓开发人员把用户界面放在XML文档中定义,这样就可以让XML文档专门负责用户UI界面设置,而java程序专门负责业务实现,从而降低程序的耦合,便于程序的维护和扩展,符合mvc设计思想。
在XML中Android开发人员放置了很多我们经常用到的一些组件,比如view,Button,EditText等,通过这些系统提供的控件,我们可以开发出我们想要的程序界面来。
Layout 是一类特殊的ViewGroup 控件,它们本身并不显示任何的内容,存在的惟一原因就是其中的内部结构,能够更好地摆放它的子控件。比如Linearlayout(线性布局),可将子控件按水平或垂直方向按顺序排列下去;Tablelayout(表格布局),可以将子控件按照表格的形式,一枚枚放置好;Relativelayout(相对布局),实际应用中这个布局更灵活,它可以设定各个控件之间的对齐和排列关系,适合编写复杂的界面。有了Layout 的存在,控件和控件之间不再是独立地存在,而是更有机地结合在一起,设定起来也更为方便。
在本程序中布局文件我一共用到了如图4.1所示的布局文件
6
图 4.1 布局文件图
其中city_detail用来显示城市简介的信息,city_environment用来显示当前所在城市的生活指数信息,city_layout用来显示用来选择城市布局,content_layout用来显示天气情况,gps_view用来显示gps定位信息,login用来显示登录欢迎界面,main包含了用来切换的三个界面,tqyb显示主界面布局 4.2欢迎界面的实现
考虑到程序界面的美观效果,在进入主界面之前我首先设置了一个用来跳转的Activity,并命名为LoginActivity。在LoginActivity中显示login布局
Timer timer = new Timer();
final Intent intent = new Intent(this,edu.njue.app.WeatherWebServiceActivity.class); TimerTask task = new TimerTask(){ @Override public void run() { startActivity(intent); LoginActivity.this.finish(); } }; timer.schedule(task, 1000); }
程序显示画面一秒后会进入主程序天气界面,如图4.2所示程序欢迎界面
7
图 4.2 欢迎界面图
4.3 主界面功能实现
第一次安装好进入程序界面时,系统会显示“本程序是第一次运行,请选择
想要了解的城市”的窗口。在这里我把默认城市设置为南京,如果用户不单击城市选择按钮的时候,则会显示的是南京近两天的天气情况。如图4.3所示。第一次运行时,我是通过在手机文件系统中判断是否存在一个名为shared_prefs的文件来判断是否为第一次运行,如果存在则不是第一次运行,系统会继续执行向下执行代码,如果系统中不存在该文件,则为第一次运行该程序,程序弹出对话框告诉用户。
8
共分享92篇相关文档