chronometerandroid
『壹』 關於Android chronometer 監聽器的使用問題
使用Service。給你一個demo:
需要開始定時任務的時候調RegistryBeeper方法,停止的時候調UnregistryBeeper。代碼來自「靜音達人」,可以去網路應用搜索下載,體驗一下:)
-------------------------------------------
/**
* 執行切換情景模式的消息接收器
*
* @author ValentineNing
*
*/
public class TimerBasedActivator {
/**
* 注冊定時器的組件
*/
private static AlarmManager s_AlarmMgr;
/**
* 發送給SmartProfileBeepReceiver的消息
*/
private static PendingIntent s_SmartProfileBeeperIntent;
/**
* 非同步注冊到定時任務
*
* @param context
* 執行注冊的上下文
*/
public static void BeginRegistryBeeper(final Context context) {
Thread th = new Thread(new Runnable() {
public void run() {
RegistryBeeper(context);
}
});
th.start();
}
/**
* 注冊定時任務
*
* @param context
* 執行注冊的上下文
*/
public static void RegistryBeeper(Context context) {
ILog logger = new ExternalStorageLogger(context);
logger.Log("[TBA] 開始注冊定時任務");
// 准備參數
s_AlarmMgr = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
Intent intent2 = new Intent(context, TimerBoardcastReciever.class);
s_SmartProfileBeeperIntent = PendingIntent.getBroadcast(context, 0,
intent2, PendingIntent.FLAG_UPDATE_CURRENT);
// 添加前先嘗試注銷
s_AlarmMgr.cancel(s_SmartProfileBeeperIntent);
// 注冊Beeper(延遲5秒後開始工作,然後每5分鍾執行一次)
s_AlarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, Calendar.getInstance()
.getTimeInMillis() + 5 * 1000, 1000 * 60 * 5,
s_SmartProfileBeeperIntent);
logger.Log("[TBA] 定時任務注冊完成");
}
/**
* 取消定時任務
*
* @param context
* 執行注冊的上下文
*/
public static void UnregistryBeeper(Context context){
if(s_AlarmMgr!=null){
ILog logger = new ExternalStorageLogger(context);
logger.Log("[TBA] 開始注銷定時任務");
Intent intent2 = new Intent(context, TimerBoardcastReciever.class);
s_SmartProfileBeeperIntent = PendingIntent.getBroadcast(context, 0,
intent2, PendingIntent.FLAG_UPDATE_CURRENT);
// 注銷定時任務
s_AlarmMgr.cancel(s_SmartProfileBeeperIntent);
logger.Log("[TBA] 定時任務注銷完成");
}
}
/**
* 定時任務通知的接收器
*
* @author valentine
*
*/
public class TimerBoardcastReciever extends BroadcastReceiver{
@Override
public void onReceive(Context arg0, Intent arg1) {
ILog logger = new ExternalStorageLogger(arg0);
logger.Log("[TBR] 開始檢查是否需要切換情景模式");
PhoneProfileSwitcher.Check(arg0);
logger.Log("[TBR] 情景模式切換完畢,准備更新任務欄圖標");
MiscHelpers.RefreshNotifycation(arg0);
logger.Log("[TBR] 任務欄圖標更新完畢");
}
}
}
『貳』 android Chronometer 中默認的是MM:SS,我想只顯示秒,請高手指教
通過setFormat方法來設置顯示格式。
setFormat("SS");
『叄』 Android Chronometer實現時分秒的顯示
android:format="H:MM:SS";