前面各种源码分析中很多都用到wakelock功能,主要是阻止手机休眠以便处理耗时操作。它的使用也比较简单,下面简单介绍下。
直接贴代码:
public class WakeLockService extends Service {
public int onStartCommand(Intent intent, int flags, int startId) {
System.out.println("zyf onStartCommand");
PowerManager manager = (PowerManager) getSystemService(Context.POWER_SERVICE);
WakeLock wakeLock = manager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
"wakeTag_no");
wakeLock.acquire();
// 处理耗时操作,处理完后释放wakelock
if (wakeLock != null) {
wakeLock.release();
stopSelf();
}
return startId;
};
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
声明:
<service android:name="com.example.wakelockdemo.WakeLockService" >
</service>
调用:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent service = new Intent(this, WakeLockService.class);
startService(service);
}
}
就是这么简单。