我從AlarmManager onReceive調用服務,下面是實現。我想知道這個喚醒鎖的執行是否正常,它是否足以滿足我的需求?在服務上實現喚醒鎖
這是我的服務類在onStart功能:
@Override
public void onStart(Intent intent, int startId) {
WakeLock wakeLock = null;
try{
PowerManager mgr = (PowerManager)getApplicationContext()
.getSystemService(Context.POWER_SERVICE);
wakeLock = mgr.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakeLock");
wakeLock.acquire();
//For time consuming an long tasks you can launch a new thread here
Toast.makeText(this, " Service Started", Toast.LENGTH_LONG).show();
}catch(Exception e){
}finally{
wakeLock.release();
}
}
你真的嘗試過嗎?如果是這樣,它工作嗎?你還沒有解釋過你的服務是如何工作的,或者你的「需求」是什麼,或者你的「需求」是什麼。另外'onStart(...)'在API 5中已被棄用 - 您應該使用'onStartCommand(...)'。 – Squonk
是的,我已經嘗試過了,這就是爲什麼我在這裏發佈它以知道我是否缺少了一些東西,這在正常情況下工作,但發佈的主要原因是要知道它在「正常」情況以外的情況下的執行情況。 – User3
請參閱您指出的棄用:)我已將代碼隔離到第二個項目中,以檢查功能,現在該服務僅顯示一個Toast消息,但在實際的程序中它將被執行以執行一些巨大的數據庫操作,打算在後臺線程中做,也在這種情況下,我想知道我是否可以使用異步任務並取消postExecute中的wakelock? – User3