標籤:
本執行個體通過TimePickerDialog時間選擇對話方塊讓使用者佈建鬧鐘。並通過AlarmManager全域定時器在指定的時間啟動鬧鐘Activity 。
程式執行:
執行個體代碼:
package com.jph.alarm.test;import java.util.Calendar;import android.app.Activity;import android.app.AlarmManager;import android.app.PendingIntent;import android.app.Service;import android.app.TimePickerDialog;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TimePicker;import android.widget.Toast;/** * Describe:</br> * </br>簡單鬧鐘提醒 * </br>本執行個體通過TimePickerDialog時間選擇對話方塊 * </br>讓使用者佈建鬧鐘並通過AlarmManager全域定時器 * </br>在指定的時間啟動鬧鐘Activity * </br>@author jph * </br>Date:2014.07.29 * */public class AlarmTest extends Activity{Button setTime;AlarmManager aManager;Calendar currentTime = Calendar.getInstance();@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);// 擷取程式介面的buttonsetTime = (Button) findViewById(R.id.setTime);// 擷取AlarmManager對象aManager = (AlarmManager) getSystemService(Service.ALARM_SERVICE);// 為“設定鬧鈴”button綁定監聽器。setTime.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View source){Calendar currentTime = Calendar.getInstance();// 建立一個TimePickerDialog執行個體,並把它顯示出來。new TimePickerDialog(AlarmTest.this, 0, // 綁定監聽器new TimePickerDialog.OnTimeSetListener(){@Overridepublic void onTimeSet(TimePicker tp,int hourOfDay, int minute){// 指定啟動AlarmActivity組件Intent intent = new Intent();intent.setAction("com.jph.alarm.test.ACTION");// 建立PendingIntent對象PendingIntent pi = PendingIntent.getActivity(AlarmTest.this, 0, intent, 0);Calendar c = Calendar.getInstance();// 依據使用者選擇時間來設定Calendar對象c.set(Calendar.HOUR_OF_DAY, hourOfDay);c.set(Calendar.MINUTE, minute);// 設定AlarmManager將在Calendar相應的時間啟動指定組件aManager.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(), pi);// 顯示鬧鈴設定成功的提示資訊Toast.makeText(AlarmTest.this, "鬧鈴設定成功啦", Toast.LENGTH_SHORT).show();}}, currentTime.get(Calendar.HOUR_OF_DAY), currentTime.get(Calendar.MINUTE), false).show();}});}}
package com.jph.alarm.test;import java.util.Calendar;import android.app.Activity;import android.app.AlarmManager;import android.app.PendingIntent;import android.app.Service;import android.app.TimePickerDialog;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TimePicker;import android.widget.Toast;/** * Describe:</br> * </br>簡單鬧鐘提醒 * </br>本執行個體通過TimePickerDialog時間選擇對話方塊 * </br>讓使用者佈建鬧鐘並通過AlarmManager全域定時器 * </br>在指定的時間啟動鬧鐘Activity * </br>@author jph * </br>Date:2014.07.29 * */public class AlarmTest extends Activity{Button setTime;AlarmManager aManager;Calendar currentTime = Calendar.getInstance();@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);// 擷取程式介面的buttonsetTime = (Button) findViewById(R.id.setTime);// 擷取AlarmManager對象aManager = (AlarmManager) getSystemService(Service.ALARM_SERVICE);// 為“設定鬧鈴”button綁定監聽器。setTime.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View source){Calendar currentTime = Calendar.getInstance();// 建立一個TimePickerDialog執行個體,並把它顯示出來。new TimePickerDialog(AlarmTest.this, 0, // 綁定監聽器new TimePickerDialog.OnTimeSetListener(){@Overridepublic void onTimeSet(TimePicker tp,int hourOfDay, int minute){// 指定啟動AlarmActivity組件Intent intent = new Intent();intent.setAction("com.jph.alarm.test.ACTION");// 建立PendingIntent對象PendingIntent pi = PendingIntent.getActivity(AlarmTest.this, 0, intent, 0);Calendar c = Calendar.getInstance();// 依據使用者選擇時間來設定Calendar對象c.set(Calendar.HOUR_OF_DAY, hourOfDay);c.set(Calendar.MINUTE, minute);// 設定AlarmManager將在Calendar相應的時間啟動指定組件aManager.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(), pi);// 顯示鬧鈴設定成功的提示資訊Toast.makeText(AlarmTest.this, "鬧鈴設定成功啦", Toast.LENGTH_SHORT).show();}}, currentTime.get(Calendar.HOUR_OF_DAY), currentTime.get(Calendar.MINUTE), false).show();}});}}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?
><manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.jph.alarm.test"android:versionCode="1"android:versionName="1.0"><uses-sdkandroid:minSdkVersion="7"android:targetSdkVersion="18" /><application android:icon="@drawable/ic_launcher" android:label="@string/app_name"><activity android:name=".AlarmTest" 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"> <intent-filter> <action android:name="com.jph.alarm.test.ACTION"/> <category android:name="android.intent.category.DEFAULT"></category></intent-filter></activity></application></manifest>
Android開發執行個體之鬧鐘提醒