Android 防止应用程序/屏幕超时

Android 防止应用程序/屏幕超时,android,android-1.5-cupcake,Android,Android 1.5 Cupcake,我有一个Android(1.5版)应用程序,当按下按钮时,它需要持续运行。因此,当按下按钮时,我希望手机保持开机状态,而不希望屏幕或CPU超时 当按下另一个按钮时,我希望手机恢复正常并根据用户设置超时。更新:根据Steve Pomeroy的建议,可能是更好的方法。 您可以使用需要以下权限的: <uses-permission android:name="android.permission.WAKE_LOCK" /> 根据您的需求,您可以使用不同类型的.而不是使用WaCKOKE,您

我有一个Android(1.5版)应用程序,当按下按钮时,它需要持续运行。因此,当按下
按钮时,我希望手机保持开机状态,而不希望屏幕或CPU超时


当按下另一个
按钮时,我希望手机恢复正常并根据用户设置超时。

更新:根据Steve Pomeroy的建议,可能是更好的方法。


您可以使用需要以下权限的:

<uses-permission android:name="android.permission.WAKE_LOCK" />

根据您的需求,您可以使用不同类型的.

而不是使用WaCKOKE,您应该考虑这里提出的解决方案:


它更易于使用,不会意外浪费用户的电池。

我确实想到了这个解决方案,但是我只能在本地创建的地方释放唤醒锁,而不能在需要释放的“关闭”按钮中释放。创意?创造服务。在服务的onCreate()中,获取保存在私有数据成员中的WakeLock。在服务的onDestroy()中,释放WakeLock。在活动中,当需要屏幕/CPU保持打开状态时,调用startService()。稍后,当您不再需要屏幕/CPU保持打开状态时,调用stopService()。现在,只要服务在运行,无论您的活动发生了什么,WakeLock都将保持。此外,该服务还可以监视电池事件,以便在电池寿命变短时释放WakeLock。我在释放方法上不断得到“wl无法解决”。释放方法:公共类WakeLockService扩展服务{@Override public IBinder onBind(Intent arg0){//TODO自动生成的方法存根返回null;}public void onCreate(){PowerManager pm=(PowerManager)getSystemService(Context.POWER_SERVICE);PowerManager.WakeLock wl=pm.newWakeLock(PowerManager.FULL_WAKE_LOCK,“我的标签”);wl.acquire();}public void onDestroy(){wl.release();}噢,伙计。。。服务远比这复杂。查看指南:我认为您确实需要唤醒锁,因为它是在活动中按下按钮时控制的,而不是在整个活动(前台)的生命周期内。可能重复
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Tag");
wl.acquire();
// wake locked...
wl.release();