Android Widget开发总结

    前段时间在做一个Weather Widget,没有平台,就调用google api来实现。可使用google提供的接口获取城市列表和天气信息,天气可以通过好种方式查询,如城市名称,经纬度,邮编。google api 还提供了中文显示。所以用起来很方便。我看过一些weather widget的应用,都做得挺好的,比如过Go Weather 他们用的是经过自己解析的天气;再比如说FancyWidgetPro,是通过http://weather.weatherbug.com来获取天气情况的。这篇文章不打算说如何开发Weather Widget,而是总结Widget需要注意的问题

    1、Widget中通过按钮点击进入Activity,这个比较简单。主要是通过RemoteViews的setOnClickPendingIntent时间来实现。请看下面代码:

 

    2、通过Service刷新界面,由于之前没有做过Widget方面的项目,所以在开始使用广播的形式,启动线程。来更新界面,是在是不爽。于是网上查了下,都是用Service来刷新界面的。那么具体如何使用呢?在AppWidgetProvider中设置Intent,并指定其Action,使用RemoteViews的setOnClickPendingIntent方法与具体的控件(weatherDate1)关联;启动Service服务;在继承Service的类中的onStart方法中得到设置的Action,做相应的动作。请看下面代码段:

    在继承AppWidgetProvider的类中:

   

    启动服务:

   

    在继承Service的类中:

   

   

    以上只是简单的点击刷新操作,那么如果天气要15分钟获取更长的时间刷新界面,那么怎么办呢?必须用到线程,用线程来控制。如果让线程sleep15分钟或者更长时间,会出现ANR的问题。很是麻烦。请看第三点。

    3、线程的使用

    Ok,怎么避免ANR,网上有详细的说明,请google!不再多说,我也说不明白,哈哈。线程的使用请看下面代码:

   

    启动线程:

   

    4、获取xml文件后中文的显示问题

   

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值