手把手教你寫軟體7 幾個常用的操作

2021-08-19 14:39:16 字數 2135 閱讀 9722

學了這麼多,應該可以寫出簡單的軟體了,好了,現在就來學點小操作吧。

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慢慢一行行的追蹤 肯定是前者更加舒...