欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android手机闹钟用法实例

程序员文章站 2024-03-31 09:01:34
本文实例讲述了android手机闹钟用法。分享给大家供大家参考。具体如下: 一、开发手机闹钟主要用到了alarmmanager类,alarmmanager类提供了访问系统...

本文实例讲述了android手机闹钟用法。分享给大家供大家参考。具体如下:

一、开发手机闹钟主要用到了alarmmanager类,alarmmanager类提供了访问系统定时服务的途径,开发人员可以在程序中设置某个应用程序在未来的某个时刻被执行。当alarmmanager定时时间到了之后,当初注册的intent对象将会被系统广播,进而启动目标程序。

二、在程序运行时当需要使用alarmmanager类时,可以通过context对象的getsystemservice(context.alarm_service)方法来获得alarmmanager对象。

以下程序中使用时间选择对话框设置闹钟的时间。

main.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">
 <button android:id="@+id/btn" 
  android:text="设置闹钟"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content" />
</linearlayout>

清单文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="com.ljq.activity" android:versioncode="1"
 android:versionname="1.0">
 <application android:icon="@drawable/icon"
  android:label="@string/app_name">
  <activity android:name=".mainactivity"
   android:label="@string/app_name">
   <intent-filter>
    <action android:name="android.intent.action.main" />
    <category
     android:name="android.intent.category.launcher" />
   </intent-filter>
  </activity>
  <activity android:name=".alarmactivity" />
  <!-- android:process=":remote": 新开一个进程 -->
  <receiver android:name=".alarmreceiver" android:process=":remote"/>
 </application>
 <uses-sdk android:minsdkversion="7" />
</manifest>

alarmreceiver类:

package com.ljq.activity;
import android.content.broadcastreceiver;
import android.content.context;
import android.content.intent;
public class alarmreceiver extends broadcastreceiver{
 @override
 public void onreceive(context context, intent intent) {
  intent i=new intent(context, alarmactivity.class);
  i.addflags(intent.flag_activity_new_task);
  context.startactivity(i);
 }
}

alarmactivity类:

package com.ljq.activity;
import android.app.activity;
import android.app.alertdialog;
import android.content.dialoginterface;
import android.content.dialoginterface.onclicklistener;
import android.os.bundle;
public class alarmactivity extends activity {
 @override
 public void oncreate(bundle savedinstancestate) {
  super.oncreate(savedinstancestate);
  //显示对话框
  new alertdialog.builder(alarmactivity.this).
   settitle("闹钟").//设置标题
   setmessage("时间到了!").//设置内容
   setpositivebutton("知道了", new onclicklistener(){//设置按钮
    public void onclick(dialoginterface dialog, int which) {
     alarmactivity.this.finish();//关闭activity
    }
   }).create().show();
 }
}

mainactivity类:

package com.ljq.activity;
import java.util.calendar;
import android.app.activity;
import android.app.alarmmanager;
import android.app.dialog;
import android.app.pendingintent;
import android.app.timepickerdialog;
import android.content.context;
import android.content.intent;
import android.os.bundle;
import android.view.view;
import android.widget.button;
import android.widget.timepicker;
import android.widget.toast;
public class mainactivity extends activity{
 private button btn=null;
 private alarmmanager alarmmanager=null;
 calendar cal=calendar.getinstance();
 final int dialog_time = 0; //设置对话框id
 @override
 protected void oncreate(bundle savedinstancestate) {
  super.oncreate(savedinstancestate);
  setcontentview(r.layout.main);
  alarmmanager=(alarmmanager)getsystemservice(context.alarm_service);
  btn=(button)findviewbyid(r.id.btn);
  btn.setonclicklistener(new view.onclicklistener(){
   public void onclick(view view) {
    showdialog(dialog_time);//显示时间选择对话框
   }
  });
 }
 @override
 protected dialog oncreatedialog(int id) {
  dialog dialog=null;
  switch (id) {
  case dialog_time:
   dialog=new timepickerdialog(
     this, 
     new timepickerdialog.ontimesetlistener(){
      public void ontimeset(timepicker timepicker, int hourofday,int minute) {
       calendar c=calendar.getinstance();//获取日期对象 
       c.settimeinmillis(system.currenttimemillis());  //设置calendar对象
       c.set(calendar.hour, hourofday);  //设置闹钟小时数
       c.set(calendar.minute, minute);   //设置闹钟的分钟数
       c.set(calendar.second, 0);    //设置闹钟的秒数
       c.set(calendar.millisecond, 0);   //设置闹钟的毫秒数
       intent intent = new intent(mainactivity.this, alarmreceiver.class); //创建intent对象
       pendingintent pi = pendingintent.getbroadcast(mainactivity.this, 0, intent, 0); //创建pendingintent
       //alarmmanager.set(alarmmanager.rtc_wakeup, c.gettimeinmillis(), pi);  //设置闹钟
       alarmmanager.set(alarmmanager.rtc_wakeup, system.currenttimemillis(), pi);  //设置闹钟,当前时间就唤醒
       toast.maketext(mainactivity.this, "闹钟设置成功", toast.length_long).show();//提示用户
      }
     }, 
     cal.get(calendar.hour_of_day), 
     cal.get(calendar.minute),
     false);
   break;
  }
  return dialog;
 }
}

运行结果:

Android手机闹钟用法实例Android手机闹钟用法实例

希望本文所述对大家的android程序设计有所帮助。