學了這麼多,應該可以寫出簡單的軟體了,好了,現在就來學點小操作吧。
1.公告 是不是看到很多的軟體正上方經常會顯示一些公告呀,提示什麼什麼活動,其實android實現這個不難,
效果如圖:
是不是so easy?
2.延時操作:
延時操作可以用timer,handler,thread等實現,我在這裡用的是handler:
handler=new handler()}};
btn.setonclicklistener(new view.onclicklistener()
});
3.定時器
定時器我們一般用到alarmmanager。這裡就要介紹幾個工作類:
elapsed_realtime:從開機開始計時,但不會喚醒系統
elapsed_realtime_wakeup:從開機開始計時,會喚醒系統
systemclock.elapsedrealtime():從開機到現在經歷時間毫秒數
rtc:從1970.1.1.00開始計時,不會喚醒系統
rtc_wakeup:從1970.1.1.00開始計時,會喚醒系統
system.currenttimemillis():從1970.1.1.00到現在經歷毫秒數
好了有了這個的知識基礎,理解下面的**就不難了:
public class longrunningservice1 extends service
@override
public int onstartcommand(intent intent, int flags, int startid) ).start();
alarmmanager manager=(alarmmanager) getsystemservice(alarm_service);
int anhour=60*1000;//每隔60s執行一次
long triggerattime= systemclock.elapsedrealtime()+anhour; //最開始執行時間為60s後
intent i=new intent(this,longrunningservice1.class);
pendingintent pi=pendingintent.getservice(this,0,i,0);
manager.set(alarmmanager.elapsed_realtime_wakeup,triggerattime,pi);
return super.onstartcommand(intent,flags,startid);}}
它的呼叫如下:
intent i = new intent(todayactivity.this, longrunningservice1.class);//排程延時操作
todayactivity.this.startservice(i);
4.定時
上面講到了定時器,可以實現重複執行,但是一旦需求是退出軟體後依然需要執行的話,定時器就難以滿足我們的需求,所以,這裡我們用一種新的方法來實現,那就是calendar
calendar用來獲取系統時間,可以獲取年月日小時分鐘秒,週幾每月第幾周第幾天等等。
calendar calendar=calendar.getinstance(); //獲取系統時間
int hour=calendar.get(calendar.hour_of_day); //獲取當前時間的小時
int min=calendar.get(calendar.minute); //獲取當前時間的分鐘
有了calendar就可以實現定時更新操作,比如你想要每週1的上午9:30執行什麼。
就可以:
if(calendar.get(calendar.day_of_week)==calendar.monday&&hour==9&&min==30) //執行命令
好了,今天要介紹的就是這些了。整個第乙個專案要說的差不多說完了,乙個月以後會開始第二個專案,到時候一定會有更多想要分享的乾貨。再 手把手教你寫Undo Redo程式
手把手教你寫 undo redo程式 undo redo 操作是很多具體編輯功能的軟體所不能缺少的。最典型兩種型別就是文字編輯和影象編輯軟體。然而它的實現在某種程度上來說也不是很簡單。我也廢話少說。要在程式中支援 undo redo 操作,就需要儲存一些必要的資訊,這個是眾所周知的。如果想支援無限級...
手把手教你寫Undo Redo程式
手把手教你寫undo redo程式 undo redo操作是很多具體編輯功能的軟體所不能缺少的。最典型兩種型別就是文字編輯和影象編輯軟體。然而它的實現在某種程度上來說也不是很簡單。我也廢話少說。要在程式中支援undo redo操作,就需要儲存一些必要的資訊,這個是眾所周知的。如果想支援無限級的und...
手把手教你寫ORM(三)
昨天處於暈死狀態,少寫了乙個元件,還需要乙個元件用來專門管理cache的,這裡說道為什麼要分這麼多元件,其實這是習慣問題,很多人喜歡寫乙個很大的dll,不過我比較喜歡拆分,小粒度的專案比較好管理和單獨測試,把用單元測試驗證好了的小組件湊起來除錯和寫成乙個巨大的dll慢慢一行行的追蹤 肯定是前者更加舒...