首先必須要說的一點是,jobscheduler的使用要求是api21(android 5.0,即lollipop )以上。看到了乙個jobscheduler的介紹:系統級的任務,開關機、殺掉程序後仍然可以繼續工作,心裡頓時就竊喜了一下,哥哥要的就是它啊。可惜好景不長,弄完了才發現他的坑人之處(後面再介紹),先說下它的使用。
1、建立乙個類繼承jobservice
繼承jobservice的服務是乙個系統服務,與程序是否存在無關。必須實現的方法有兩個,public boolean onstartjob(jobparameters params)
和public boolean onstopjob(jobparameters params)
;
public
class
myservice
extends
jobservice
@override
public
boolean
onstopjob(jobparameters params)
}
見名之意,乙個是開始任務的時候呼叫,乙個是結束任務的時候呼叫。返回值為布林值,false表示系統假設這個方法返回時任務已經執行完畢。如果返回值是true,那麼系統假定這個任務正要被執行,執行任務的重擔就落在了你的肩上。
注意一點,既然是jobservice那也是乙個service,說明它是執行在主線程中的。如果要執行耗時操作請另開子執行緒。
2、建立乙個jobscheduler物件
jobscheduler jobscheduler =(jobscheduler)getsystemservice(context.job_scheduler_service);
獲取到jobscheduler物件後,我們再建立乙個jobinfo物件。
jobinfo.builder builder = new jobinfo.builder(1, new componentname(this, myservice.class));
第乙個引數是jobid,標誌此時建立的任務;第二個引數是繼承jobservice的類的componentname。
然後對builder配置相關屬性,常用的有
builder.setpersisted(true)//手機重啟後是否繼續執行任務
.setperiodic(10*1000);//重複執行任務,間隔時間為10秒
其他設定方法 :
builder設定完後,最後呼叫:
int schedule = jobscheduler.schedule(builder.build());
該方法返回乙個int值,0表示失敗,1表示成功。
既然有schedule()方法,當然得有對應的cancel()方法。
jobscheduler.cancel(int jobid);//取消對應id的任務
jobscheduler.cancelall();//取消所有
預約提醒管理系統
目標 能通過時間線的方式展示當前的預約狀態,對預約狀態一目了然 能夠智慧型進行工作的分派 技術方面沒有任何問題,現在初步實現 預約詳情時間線 預約新增簡單頁面 可以進行任意字段方向的擴充套件 段 qclass name 預約 entity data equalsandhashcode callsup...
小牛之路 提醒功能
直接上 ps 作為職場新人,歡迎大牛批評指正,小弟不勝感激!檢視層 1 設定定時器,根據自己的業務需求設定定時器時間和當前時間的格式 2 觸發 ajax 時儘量減少請求次數,做乙個伺服器是否響應的判斷 function function chat success function data else...
RTX 提醒功能應用方案
一 需求 通過http訪問模式,啟動伺服器 提醒訊息,如下圖所示 二 設定 1.伺服器端 rtxserver的安裝目錄下的 sdkproperty.xml 127.0.0.1 您的ip位址 2.客戶端 瀏覽器或curl 三 應用 1.用瀏覽器傳送訊息 http rtx server 8012 sen...