
环境搭建就不讲了,直接说开发。
1、时间选择对话框(TimePicker)
2、获取闹钟管理器并对其进行设置
3、注册广播接收器
掌握了这两点,写程序就很简单了。
1、新建android项目:Alarm,sdk版本选择2.2,Package name:com.lql.activity,Main Activity:Alarm
2、编写界面:直接修改layout中的main.xml文件,代码如下:
Xml代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_vertical"
>
<Button
android:id="@+id/timeBtn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/time"
android:textSize="20sp"
/>
<Button
android:id="@+id/cancelAlarmBtn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/cancelAlarm"
/>
</LinearLayout>
界面的效果如下:
3、修改Alarm.java这个activity,在该Activity中需要做这样几件事:
获取界面上的两个按钮组件,并给其绑定事件监听器
第一个时间按钮,点击后,显示时间选择对话框(TimePicker),供选择小时和分钟,并设置闹钟
第二个按钮,点击之后需要当前设定的闹钟
比较难写的代码就是闹钟设置:
//设置时间
Java代码
timeBtn.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View arg0) {
Log.d(TAG, "click the time button to set time")
calendar.setTimeInMillis(System.currentTimeMillis())
new TimePickerDialog(Alarm.this,new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker arg0, int h, int m) {
//更新按钮上的时间
timeBtn.setText(formatTime(h,m))
//设置日历的时间,主要是让日历的年月日和当前同步
calendar.setTimeInMillis(System.currentTimeMillis())
//设置日历的小时和分钟
calendar.set(Calendar.HOUR_OF_DAY, h)
calendar.set(Calendar.MINUTE, m)
//将秒和毫秒设置为0
calendar.set(Calendar.SECOND, 0)
calendar.set(Calendar.MILLISECOND, 0)
//建立Intent和PendingIntent来调用闹钟管理器
Intent intent = new Intent(Alarm.this,AlarmReceiver.class)
PendingIntent pendingIntent = PendingIntent.getBroadcast(Alarm.this, 0, intent, 0)
//获取闹钟管理器
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE)
//设置闹钟
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent)
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 10*1000, pendingIntent)
Toast.makeText(Alarm.this, "设置闹钟的时间为:"+String.valueOf(h)+":"+String.valueOf(m), Toast.LENGTH_SHORT).show()
Log.d(TAG, "set the time to "+formatTime(h,m))
}
},calendar.get(Calendar.HOUR_OF_DAY),calendar.get(Calendar.MINUTE),true).show()
}
})
代码里面有注释,这里就不多解释了,其中new TimePickerDialog为创建时间选择对话框。为了能够看到效果,我给闹钟添加了重复提醒:alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 10*1000, pendingIntent)。
还要为取消闹钟按钮添加事件监听器:
Java代码
//取消闹钟按钮事件监听
final Button cancelAlarmBtn = (Button)findViewById(R.id.cancelAlarmBtn)
cancelAlarmBtn.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View arg0) {
Intent intent = new Intent(Alarm.this,AlarmReceiver.class)
PendingIntent pendingIntent = PendingIntent.getBroadcast(Alarm.this, 0, intent, 0)
//获取闹钟管理器
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE)
alarmManager.cancel(pendingIntent)
Toast.makeText(Alarm.this, "闹钟已经取消!", Toast.LENGTH_SHORT).show()
}
})
在点击取消闹钟按钮时,取消之前设置的闹钟,核心代码就4行。
4、编写广播接收器,用来接收闹钟的广播事件,然后进行相关处理,
Java代码
public class AlarmReceiver extends BroadcastReceiver {
/* (non-Javadoc)
* @see android.content.BroadcastReceiver#onReceive(android.content.Context, android.content.Intent)
*/
@Override
public void onReceive(Context arg0, Intent data) {
Log.d(Alarm.TAG, "the time is up,start the alarm...")
Toast.makeText(arg0, "闹钟时间到了!", Toast.LENGTH_SHORT).show()
}
}
这个代码就很简单了,主要是要继 承 BroadcastReceiver 这个类,然后重写onRecive方法。onRecive方法在闹钟的时间达到之后会执行,在这里我们可以做自己的事情,比如启动某个程序,或者播放铃声,我这里就是简单的提示一下,使用的是Toast。
5、在android的AndroidManifest.xml文件中注册广播接收器:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
Xml代码
package="com.ql.activity"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<receiver android:name=".AlarmReceiver" android:process=":remote" />
<activity android:name=".Alarm"
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="8" />
</manifest>
核心的配置为<receiver android:name=".AlarmReceiver" android:process=":remote" />,这也是闹钟程序的关键,如果不做这个配置,那么时间到了之后,闹钟将不会提示。
接下来就是到模拟器上测试,运行截图如上图。程序源代码见附件。
连接哪里的数据库,?远程吗,还是本地本地的话我这有,连接远程数据库的话,弄不了,需要写web端去连接数据库
本地数据库就用android自带的sqlite数据库
今天凌晨刚过,此前传闻已久的微信小程序功能就正式的来到了大家面前。作为继公众号、服务号、企业号之后的微信又一重大功能,相信很多朋友都对它十分期待。那么小程序究竟是什么?怎么找到小程序?小程序有哪些使用技巧?小程序能否干掉APP?它又会为行业带来哪些改变呢?别着急,在接下来的这篇文章里,你将找到你想要的全部答案。
微信小程序
什么是小程序?
根据微信官方给这款产品的定义来看,微信小程序属于一种无需安装,即用即开的“手机应用”。用户通过扫描二维码、使用搜索功能以及点击朋友分享给自己的链接就可以进入小程序。不过值得注意的是,目前小程序还不支持分享到朋友圈。
从目前的使用上看,小程序在很多方面做得都十分接近APP。可以在桌面创建图标、支持后台单独显示、以及拥有美观的UI界面。
什么是微信小程序
如何找到小程序?
和传统的应用程序不同,小程序并不能在手机的应用商店中进行搜索。而其“父亲”微信内同样没有提供小程序商店的入口。那么,这样的情况下我们该如何找到小程序呢?
微信官方为我们提供了三种进入到小程序的方式。在知道小程序名字的时候,用户可以通过搜索功能直接对其进行搜索。而微信更希望的小程序使用场景则是通过扫码进入。例如:在公交站,你可以直接扫描站牌的二维码获取公交到达的时间信息等等。除此之外,微信还为用户提供了分享功能,当然,目前分享功能仅限分享给朋友或羣组,还不能分享到朋友圈。
如何找到微信小程序
当然,对于安卓用户来说,在小程序页面内也为用户提供了添加到桌面的选项,让用户可以更加方便的打开常用的小程序。微信内的“发现”当中,也为使用过的小程序提供了入口。
怎么使用小程序&小程序使用技巧
事实上,小程序的使用逻辑与Apps的使用逻辑是相同的,小程序更像是轻量版的APP应用。不过值得注意的是,小程序本身的属性决定了它有着很多自己的特色。接下来,笔者就与大家一起聊一聊小程序的使用技巧。
如何使用微信小程序
安卓用户可将小程序发送到桌面
因为系统更加开放的原因,安卓用户将可以直接将小程序发送到桌面生成程序图标。根据笔者对小程序图标设计的观察,目前小程序和APP的图标设计存在着一定的区别。不过笔者还不确定究竟是巧合还是软件开发商的刻意为之。
如何将小程序发送到桌面
微信小程序图标有着非常统一的规范,每个小程序的图标都是菱角分明的正四边形。这一点与众多安卓浏览器“将图标发送到桌面”的功能十分相似。(图中第一排为小程序图标,第二排为浏览器书签图标,第三排为APP图标)
通过扫一扫功能打开应用不支持长按识别
为了增加与服务号之间的区分度,微信在入口、推荐方式等很多途径对小程序作出了限制。除了我们上文已经提到的不支持分享到朋友圈之外,微信甚至对于小程序通过扫一扫进入到方式也作出了限制。用户无法通过识别二维码的方式进入到小程序当中,而只能通过扫码的方式进入
小程序会消耗内存
我们都知道,无需安装,即用即开是小程序的一大优点。不过这并不意味着小程序可以逆天到不消耗资源。当我们使用微信打开小程序的时候,微信所占用的内存资源是会明显上升的。
小程序消耗的内存是多少
小程序的优势:没有恼人的通知
除此之外,没有恼人的通知同样是小程序的一大优势。举个例子,在不进行通知管理的情况下,微信视频在后台运行时视频内容推荐总会不时d出。不过如果使用小程序,这些恼人的推荐内容就不会再出现了。不仅如此,可能是小程序推广期的原因,目前使用小程序观看视频即使不是会员也可以观看5s广告后跳过广告,体验更加出色。
目前小程序遍及的类目
目前, 微信官方已经开放了包括商业服务、公益、IT科技、餐饮、旅游、电商平台等18个大类的开发,通过微信小程序,我们可以完成购物、外卖、生活服务等一系列的活动。不过值得注意的是,很多人关注的“游戏”类目,目前还未开放,所以如果你想玩到小程序游戏,可能还要多等一等。
小程序优势
小程序干掉APP?
在小程序发布之后,有关小程序干掉APP的言论在互联网上可谓是层出不穷。那么接下来,我们就也来谈一谈,小程序究竟能否干掉APP。
在笔者前段时间有关小程序的文章中就曾提到:小程序更像是基于H5的“云应用”,而随着云技术的逐渐普及,云应用会是未来几乎已无悬念。不过,要说微信小程序将会干掉APP们,笔者依旧认为是一个“伪命题”。
首先,微信本身的属性就已经限制了它成为“革命者”的可能。就目前而言,微信本身仍然在APP的范畴之内而且,虽然在国内应用领域微信几乎有着最强的号召力和影响力,但是想要靠其一家干掉APP,依旧是一件不可能的事情。
而另一方面,其实在此之前,例如火狐FireFox OS、Google Chrome OS、阿里YUNOS,已经有很多举足轻重的互联网公司正在OS领域对云应用进行探讨了。不过由于云计算能力和网络方面的限制,目前还没有一家称得上成功。FireFox OS前年末已经“牺牲”,YUNOS的云端应用被压缩在一个最左屏内,仍需兼容Android生存,Chrome OS设备虽有所增长,但归其原因更多的是因为价格低廉。
综合来看,似乎在目前的环境下讨论“云应用”普及,还为时过早。
● 小程序会带来哪些改变?
那么,既然不能干掉APP,小程序又能带来哪些改变呢?难道小程序的作用真的仅限于“拯救16GB iPhone”吗?笔者认为,微信小程序的到来至少会带来下面两点影响:
创业者新的狂欢
毫无疑问,对于很多创业者来说,小程序将会成为他们新的创业风口。依托着微信背后巨大的流量资源,风口上的小程序开发者极有可能会成为下一批“飞猪”。对于开发者而言,小程序拥有更低的开发时间和人力资本,简单来说就是“省钱”,而且它还更容易更新和维护,微信方面对于小程序的政策也十分适合创业者们:修改无需等待审覈,迭代后马上能看到效果,这又为开发者省去了很多麻烦和时间成本。
其实,这样的桥段在此之前的公众号和服务号上就曾上演过。每一次新的东西出现总会有一批抓住红利获得成功的人。小程序自然也是其一。
H5技术的普及
除此之外,笔者认为小程序可能会带来的另一大影响则在HTML5技术上。微信小程序是基于H5开发的程序,但用了类似于JS-SDK的框架(百度以前是clouda框架),提供了更多的接口和组件,让程序更加流畅,体验接近原生APP(Native App)。从根本上讲,小程序虽然不是H5,但却与H5有着千丝万缕的联系。
依靠着微信的影响力,小程序或可以让如今混乱和普及度不高的H5技术变得更加规范和大众化。这一点无论对网页技术的发展,还是对于未来云应用的普及,都是强有力的助燃剂。
后序:致敬苹果的微信小程序
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)