開發小鬧鐘程序的要點是:
1,時間選擇器
2.獲取鬧鐘管理器並設置它。
3.註冊廣播接收機
掌握了這兩點,寫程序就很簡單了。
1,新android項目:Alarm,SDK 2.2版,包名:com.lql.activity,主活動:Alarm。
2.編寫接口:直接修改布局中的main.xml文件,代碼如下:
Xml代碼?
& lt?xml?version="1.0 "?編碼="utf-8 "?& gt
& ltLinearLayout?xmlns:Android = "/apk/RES/Android "
android:orientation="vertical "
Android:layout _ width = " fill _ parent "
Android:layout _ height = " fill _ parent "
Android:gravity = " center _ vertical "
& gt
& lt紐扣
android:id="@+id/timeBtn "
Android:layout _ width = " fill _ parent "?
Android:layout _ height = " wrap _ content "?
android:text="@string/time "
android:textSize="20sp "
/& gt;
& lt紐扣
Android:id = " @+id/cancelAlarmBtn "
Android:layout _ width = " fill _ parent "?
Android:layout _ height = " wrap _ content "?
Android:text = " @ string/cancel alarm "
/& gt;
& lt/linear layout & gt;
該界面的效果如下:
3.要修改Alarm.java的活動,您需要在該活動中做幾件事情:
在接口上獲取兩個按鈕組件,並將事件偵聽器綁定到它們。
單擊第壹個時間按鈕,將顯示時間選擇器,允許您選擇小時和分鐘並設置鬧鐘。
第二個按鈕,點擊後需要當前設置的鬧鐘。
較難編寫的代碼是鬧鐘設置:
//設置時間
Java代碼
timeBtn.setOnClickListener(新?按鈕。OnClickListener(){
@覆蓋
公共?作廢?onClick(查看?arg0)?{
Log.d(標簽,?“點擊?那個?時間?按鈕?去哪?設置?時間”);
calendar . settimeinmillis(system . current time millis());
新的?TimePickerDialog(Alarm.this,new?TimePickerDialog。OnTimeSetListener()?{
@覆蓋
公共?作廢?onTimeSet(TimePicker?arg0,?int?h,?int?m)?{
//更新按鈕上的時間
timeBtn.setText(formatTime(h,m));
//設置日歷的時間,主要是將日歷的日期與當前日期同步。
calendar . settimeinmillis(system . current time millis());
//設置日歷的小時和分鐘。
calendar.set(日歷。壹天中的某個小時?h);
calendar.set(日歷。分鐘,?m);
//將秒和毫秒設置為0。
calendar.set(日歷。第二,?0);
calendar.set(日歷。毫秒,?0);
//建立Intent和PendingIntent來調用鬧鐘管理器。
意圖?意圖?=?新的?Intent(Alarm.this,alarm receiver . class);
待定內容?待定內容?=?pending content . get broadcast(alarm . this,?0,?意圖?0);
//獲取鬧鐘管理器
AlarmManager?alarmManager?=?(ALARM manager)getsystem SERVICE(ALARM _ SERVICE);
//設置鬧鐘
alarmManager.set(AlarmManager。RTC_WAKEUP,?calendar.getTimeInMillis(),?pendingIntent);
alarm manager . set repeating(alarm manager。RTC_WAKEUP,?calendar.getTimeInMillis(),?10*1000,?pendingIntent);
Toast.makeText(Alarm.this,?"設置鬧鐘的時間是:"+string . value of(h)+":"+string . value of(m),?吐司。LENGTH_SHORT)。show();
Log.d(標簽,?“設定?那個?時間?到?”+formatTime(h,m));
}
}、calendar.get(Calendar。HOUR_OF_DAY)、calendar.get(Calendar。分鐘),真)。show();
}
});
代碼裏有註釋,這裏就不解釋了。新時間選擇器對話框是創建時間選擇對話框。為了看效果,我給鬧鐘加了重復提醒:鬧鐘管理器。設置重復(報警管理器。RTC _ wakeup,日歷。gettimeinmillis(),10 * 1000,待定意向);。
還要為取消警報按鈕添加壹個事件監聽器:
Java代碼
//取消報警按鈕事件監控
決賽?按鈕?cancelAlarmBtn?=?(Button)findViewById(r . id . cancelalarmbtn);
cancelalarmbtn . setonclicklistener(新?按鈕。OnClickListener(){
@覆蓋
公共?作廢?onClick(查看?arg0)?{
意圖?意圖?=?新的?Intent(Alarm.this,alarm receiver . class);
待定內容?待定內容?=?pending content . get broadcast(alarm . this,?0,?意圖?0);
//獲取鬧鐘管理器
AlarmManager?alarmManager?=?(ALARM manager)getsystem SERVICE(ALARM _ SERVICE);
alarm manager . cancel(pending content);
Toast.makeText(Alarm.this,?“鬧鐘取消了!”,?吐司。LENGTH_SHORT)。show();
}
});
點擊取消鬧鐘按鈕,取消之前設置的鬧鐘,核心代碼為4行。
4.寫壹個廣播接收器,用來接收鬧鐘的廣播事件,然後進行相關處理。
Java代碼
公共?班級?AlarmReceiver?延伸?廣播接收器?{
/*?(非Javadoc)?
*?@看到了嗎?Android . content . broadcast receiver # on receive(Android . content . context,?android.content.Intent)?
*/
@覆蓋
公共?作廢?onReceive(上下文?arg0,?意圖?數據)?{
Log.d(報警。標簽,?“那個?時間?是嗎?起來,開始?那個?報警……”);
Toast.makeText(arg0,“鬧鐘時間到了!”,?吐司。LENGTH_SHORT)。show();
}
}
這段代碼很簡單,主要是為了繼承?BroadcastReceiver類,然後重寫onRecive方法。onRecive方法將在鬧鐘時間結束後執行。在這裏我們可以做自己的事情,比如啟動程序或者播放鈴聲。我只想給妳壹個簡單的提醒,吐司是用的。
5.在android的AndroidManifest.xml文件中註冊廣播接收器:
& lt清單xmlns:Android = "/apk/RES/Android "
Xml代碼?
package="com.ql.activity "
android:versionCode="1 "
Android:version name = " 1.0 " & gt;
& lt申請?android:icon="@drawable/icon "?Android:label = " @ string/app _ name " & gt;
& lt接收器?android:name= "。AlarmReceiver "?android:process=":remote "?/& gt;
& lt活動?android:name= "。警報”
Android:label = " @ string/app _ name " & gt;
& lt意向過濾器& gt
& lt行動?Android:name = " Android . intent . action . main "?/& gt;
& lt類別?Android:name = " Android . intent . category . launcher "?/& gt;
& lt/intent-filter & gt;
& lt/activity & gt;
& lt/application & gt;
& lt用途-sdk?android:minSdkVersion="8 "?/& gt;
& lt/manifest & gt;?
核心的配置是
接下來是在模擬器上測試,運行截圖如上圖。程序源代碼見附件。