一款独立开发的天气Android APP。
运行APP有启动界面,1.5秒后转到主界面,可在此期间进行加载数据等操作。
- 定位功能:最初使用的是android自带的Location和GeoCoder,奈何非常不稳定(不知是不是和google被墙有关),有时能解析出位置有时无response,于是改用百度的LBS SDK,比较好用。
- 天气查询:天气查询使用的和风天气接口,通过城市名(城市ID也行,我是用的城市名)查询城市天气信息,返回JSON数据,借助GSON解析出实体类,在本地进行操作。
城市信息是通过初次安装(或更新)时加载sql文件写入sqlite数据库。
切换城市功能通过在搜索栏输入字符串,使用模糊查询在sqlite查询出城市名(ID),发送request获得新的城市天气信息JSON数据。
点击右上角刷新按钮刷新所在城市天气信息。
每20分钟会自动更新天气信息。
此功能通过Server后台服务计时发送message到主线程handler发送天气信息请求更新UI,再从handler启动server达到服务的定时功能。
使用的也是server服务,出于练习的目的,定时功能与5不同,使用的是handle.postdelayed(task,time)方法达到定时切换功能。