仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1559|回复: 19
打印 上一主题 下一主题

[学习教程] IOS设计Android文本时钟 ― Part4仓酷云

[复制链接]
山那边是海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:35:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
打开.xib的文件打开的就是IBIB和代码交互用的是IBActionIBOutlet这些标记这些标记追踪到他们的定义其实对编译器来说什么都不表示在前一篇文章中,我们已能够在文本时钟小部件上显现工夫,可是这个工夫没法主动更新。在本文中我们将会利用AlarmManager准时更新小部件。
之前,我们会商过IntentService和怎样利用它往实行Action。AlarmManager为我们供应了一个准时启动IntentService的完善机制。但愿本文能帮你懂得怎样利用Intent启动AndroidService(之前先容并利用过)。怎样设定AlarmManager在某段工夫距离后实行这个Action,而且能够选择工夫距离反复实行。不止范围于启动服务(Service),AlarmManager还能够实行很多别的Action。它能够发送播送并启动举动(Activity)。PendingIntent用来暗示将要被实行的Action,由AlarmManager布置这个Action将要实行的工夫。
让我们思索一下我们的使用小部件应该怎样更新。当用户在主页面创立一个小部件时会挪用TextClockAppWidget的onUpdate()办法。到今朝为止,我们只是在这个函数里更新小部件的工夫,没有做任何其他事变。但实在我们还能够在这个办法里布置行将要举行的更新。固然,我们仍旧但愿在这里更新初始工夫,以是我们坚持startService()稳定。我们但愿做的是天生一个Alarm,这个Alarm会每分钟触发一个PendingIntent,挪用一次startService()(事先间从59秒变到00秒的时分,分钟数加一)确保小部件显现准确的工夫。
有一点要注重,用户大概安装多个小部件实例。可是我们只必要一个Alarm更新。我们的时钟小部件原本就应当在统一工夫更新,因而启动多个服务就有些华侈了。坏动静是,AlarmManager不同意我们查询设置了哪些Alarm,这让事变变得有些庞大。好动静是,我们能够经由过程PendingIntent检测是不是有一个已设置的Alarm。即便是创立在分歧的线程、历程、乃至使用程序中,假如PendingIntent利用不异的操纵(Operation)、IntentAction、数据、分类、组件和标志(Flag),那它就是独一的PendingIntent。我们可使用它办理Alarm。
为了便于申明,我们重点存眷用PendingIntent来启动服务。一样的手艺也能够使用在其他场所。我们没法间接创立PendingIntent,可是PendingIntent类为我们供应了一些静态工场办法。PendingIntent.getService()可以承受四个参数:


  • Contextcontext:PendingIntent启动的服务高低文。
  • intrequestCode:疏忽。
  • Intentintent:用作startService()的参数,此函数会在方才供应的context上挪用。
  • intflags:用来把持是不是必要和怎样创立或更新PendingIntent。
假如我们利用FLAG_NO_CREATE标志,那末PendingIntent.getService()会反省是不是有一个带有一样参数的PendingIntent已存在于此设备上。假如存在前往它的实例,不然前往null。因而我们可使用这个办法确保只存在一个PendingIntent:
1
2
3
4
5
6
7
8
9
10
11
Intentupdate=newIntent(TextClockService.ACTION_UPDATE);
PendingIntentpi=PendingIntent.getService(context,
REQUEST_CODE,
update,
PendingIntent.FLAG_NO_CREATE);
if(pi==null){
pi=PendingIntent.getService(context,
REQUEST_CODE,
update,
PendingIntent.FLAG_CANCEL_CURRENT);
}

假如创立PendingIntent时只创立了一个Alarm,那就能够包管只要一个Alarm。
我们还能够使用于TextClockAppWidget:
<p>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
publicclassTextClockAppWidgetextendsAppWidgetProvider{
privatestaticfinalStringTAG="TextClockWidget";
privatestaticfinalIntentupdate=newIntent(TextClockService.ACTION_UPDATE);
privatestaticfinalintREQUEST_CODE=1;
privateContextcontext=null;
@Override
publicvoidonUpdate(Contextcontext,
AppWidgetManagerappWidgetManager,
int[]appWidgetIds){
Log.d(TAG,"onUpdate");
this.context=context;
this.context.startService(update);
scheduleTimer();
}
privatevoidscheduleTimer(){
Calendardate=Calendar.getInstance();
<p>
若相依 该用户已被删除
沙发
发表于 2015-1-21 10:34:21 | 只看该作者
有办法利用自己手头的电脑立刻开始这个美妙旅程的。
透明 该用户已被删除
板凳
发表于 2015-1-30 15:14:10 | 只看该作者
开始的时候甚至想放弃,不过想想自己的未来,只能咬牙坚持,课下就不停的缠着老师。放学就补基础,这些基础的东西没有速成的,只有刻苦努力。我是后来发现的,转变自己的心态,不要读书看资料当成一种痛苦
飘飘悠悠 该用户已被删除
地板
发表于 2015-2-1 18:17:13 | 只看该作者
中国如今已然发展成为一个软件大国,软件人才的数量跃居全球之首。当然,在苹果平台的开发领域,也保持了相当强劲的发展势头。然而,很多初入iOS开发门槛的开发者,
山那边是海 该用户已被删除
5#
 楼主| 发表于 2015-2-2 06:06:52 | 只看该作者
有办法利用自己手头的电脑立刻开始这个美妙旅程的。
活着的死人 该用户已被删除
6#
发表于 2015-2-7 16:50:19 | 只看该作者
学习ios没什么捷径,关键在于多动手敲,曾看到前辈开玩笑说怎么快速学会某技术,答案是:“提高打字速度,快点写代码就能快点学会了”。
爱飞 该用户已被删除
7#
发表于 2015-2-22 16:14:35 | 只看该作者
众多研发人员积极参与到iOS平台的开发中来也就不足为奇了。
精灵巫婆 该用户已被删除
8#
发表于 2015-3-2 20:37:00 | 只看该作者
边吃零食边看Stanford的视频教程
谁可相欹 该用户已被删除
9#
发表于 2015-3-11 06:05:05 | 只看该作者
学习ios没什么捷径,关键在于多动手敲,曾看到前辈开玩笑说怎么快速学会某技术,答案是:“提高打字速度,快点写代码就能快点学会了”。
灵魂腐蚀 该用户已被删除
10#
发表于 2015-3-13 09:28:11 | 只看该作者
down下code4app网站的每个分类的代码挨着看
冷月葬花魂 该用户已被删除
11#
发表于 2015-3-15 22:57:29 | 只看该作者
自从苹果公司开放iOS SDK以来,大量的国内外的软件开发者将关注的目光聚集在苹果的iOS平台上。由于iPhone和iPad自一出现就给人带来了颠覆性的感觉
蒙在股里 该用户已被删除
12#
发表于 2015-3-16 03:58:37 | 只看该作者
自从苹果公司开放iOS SDK以来,大量的国内外的软件开发者将关注的目光聚集在苹果的iOS平台上。由于iPhone和iPad自一出现就给人带来了颠覆性的感觉
若天明 该用户已被删除
13#
发表于 2015-3-17 09:09:46 | 只看该作者
这个办法就是在WindowsXP或Win7的电脑上,使用vmware虚拟机来搭建一个真实的Mac OS X环境。
飘灵儿 该用户已被删除
14#
发表于 2015-3-18 09:02:12 | 只看该作者
要学会通过各种方法将面前的事情变成自己感兴趣的,那专研起来就不会是无聊和折磨了。
再现理想 该用户已被删除
15#
发表于 2015-3-25 14:28:20 | 只看该作者
iPhone文件系统:创建、重命名以及删除文件,NSFileManager中包含了用来查询单词库目录、创建、重命名、删除目录以及获取/设置文件属性的方法(可读性,可编写性等等)。
简单生活 该用户已被删除
16#
发表于 2015-3-28 19:51:38 | 只看该作者
要学会通过各种方法将面前的事情变成自己感兴趣的,那专研起来就不会是无聊和折磨了。
admin 该用户已被删除
17#
发表于 2015-4-16 01:11:11 | 只看该作者
这个办法就是在WindowsXP或Win7的电脑上,使用vmware虚拟机来搭建一个真实的Mac OS X环境。
乐观 该用户已被删除
18#
发表于 2015-4-19 00:43:08 | 只看该作者
众多研发人员积极参与到iOS平台的开发中来也就不足为奇了。
只想知道 该用户已被删除
19#
发表于 2015-4-19 10:14:48 | 只看该作者
我也从简单的状态栏适配开始,先研究了下关于状态栏的适配,特总结如下,供广大网友一起讨论交流。
海妖 该用户已被删除
20#
发表于 2015-4-25 09:36:14 | 只看该作者
其实在培训的过程中,学习到最多的就是查资料的方式,当时感觉老师好坑,什么都不告诉我们,让我们自己去查,但是现在觉得还是要自己解决问题,这样才能理解的更加深入。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-2 06:25

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表