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

Tom*_*Tom 6 android android-1.5-cupcake

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

Button按下另一个时,我希望手机恢复正常并按用户设置超时.

Jos*_*ger 3

更新:正如 Steve Pomeroy 所建议的,可能是更好的方法。


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

<uses-permission android:name="android.permission.WAKE_LOCK" />
Run Code Online (Sandbox Code Playgroud)

以下是获取和释放的方法WakeLock

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Tag");
wl.acquire();
// wake locked...
wl.release();
Run Code Online (Sandbox Code Playgroud)

根据您的要求,您也许可以使用不同类型的WakeLock.

  • 创建服务。在服务的 onCreate() 中,获取保存在私有数据成员中的 WakeLock。在服务的onDestroy()中,释放WakeLock。在 Activity 中,当您需要屏幕/CPU 保持开启状态时,请调用 startService()。稍后,当您不再需要屏幕/CPU 保持打开状态时,请调用 stopService()。现在,只要服务正在运行,无论您的活动发生什么情况,WakeLock 都会被保留。此外,该服务还可以监视电池事件,以便在电池寿命变短时释放 WakeLock。 (2认同)