我有一个带有WiFi锁的安卓前台服务,它充当另一个本地设备的web服务。在Doze模式出现之前,获取WiFi锁并按需提供服务效果很好。
即使关闭了我的应用程序的电池优化,当屏幕关闭几分钟时,手机仍然会关闭应用程序。
我如何正确地提醒Android,客户明确请求的服务正在前台执行,而他们不希望自己的手机此时进入睡眠状态?
编辑:此问题在Android 8.0 (Oreo)中仍然存在
发布于 2017-05-09 12:46:12
你可以这样做:就像你调用你的服务一样,你可以添加一个代码来保持屏幕唤醒。这将避免手机自动锁定。下面是文档中的示例代码片段。
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//keep screen awake
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
这种方法的优点是,与唤醒锁不同,它不需要特殊权限,并且平台可以正确地管理用户在应用程序之间的移动,而无需担心应用程序释放未使用的资源。此外,您还可以按照本SO answer中所述的有效方式使用报警管理器
https://stackoverflow.com/questions/39775601
复制相似问题