【发布时间】:2013-12-02 05:27:09
【问题描述】:
我很困惑是否要获取这个唤醒锁。例如。我有这种类型的代码是从BroadcastReceiever(CONNECTIVITY_CHANGE、BOOT_COMPLETED 等)异步的onReceive() 调用的,即我正在从onReceive() 启动一个IntentService,它执行繁重的工作。
private static void insertInDatabase(Context context /*, some data to be inserted in database*/) {
Database helper = Database.getInstance(context);
PowerManager pm = (PowerManager) context
.getSystemService(Context.POWER_SERVICE);
final WakeLock wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, wakelockName);
wakeLock.acquire();
try {
SQLiteDatabase db = helper.getWritableDatabase();
ContentValues cv = new ContentValues();
// insert data in database here
} finally {
wakeLock.release();
}
}
这种情况是否适合收购PowerManager.PARTIAL_WAKE_LOCK?
【问题讨论】:
-
看我的回答 - 如果你只是获得服务中的锁定将无法工作
标签: android broadcastreceiver android-sqlite wakelock android-wake-lock