gpt4 book ai didi

android - 部分唤醒锁不起作用

转载 作者:太空狗 更新时间:2023-10-29 16:08:16 26 4
gpt4 key购买 nike

我的应用程序有 activities 和后台 service 必须 24*7 运行,

我的应用程序必须通过 Wi-Fi 与服务器通信以发送和接收信息。

问题:每当服务器发送任何警报时,我的应用程序应该接收并弹出应用程序,无论它是在前台还是后台运行,并向用户提示有关警报的信息。

因此,当设备处于 Activity 状态时,此功能完美运行,但当设备进入休眠模式时,1 或 2 分钟后它会断开与服务器的连接并停止通信。所以为了解决这个问题,我编写了代码,将 WiFi sleep 策略设置为 NEVER,并在后台服务的 OnCreate() 方法中获取部分锁,并在 OnDestroy() 中释放锁 服务的方法。现在观察一段时间它工作正常意味着 5 或 10 分钟 然后再次停止通信。

应用是在 Android 2.1 上开发并部署在支持 Android 2.3 版本的设备上。

我不明白为什么部分锁会这样,请帮我解决这个问题。

问候,皮克斯。

最佳答案

我也遇到了同样的问题,终于找到了完美的解决方案。

尝试通过扩展 Application 类来获取唤醒锁:代码:

package com.example.MyApp.UserView;

import android.app.Application;
import android.content.Intent;
import android.os.PowerManager;
import android.provider.Settings;

/**
* @author SDurai
*
*/
public class MyApp extends Application
{
private static final String TAG = MyApp.class.getSimpleName();
private PowerManager.WakeLock mWakeLock = null;

@Override
public void onCreate() {
super.onCreate();

final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
mWakeLock.acquire();
}

@Override
public void onTerminate() {
if (mWakeLock.isHeld())
mWakeLock.release();
super.onTerminate();
}
}

如果您还有其他疑问,请告诉我。随时准备提供帮助!

关于android - 部分唤醒锁不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9000563/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com