我的应用程序具有必须运行24*7 的activities背景,service
我的应用程序必须通过与服务器通信Wi-Fi来发送和接收信息。
问题:每当服务器发送任何警报时,我的应用程序都应该接收并弹出该应用程序,无论它是在前台还是后台运行,并且与用户有关警报。
因此,当设备处于活动状态时,此功能可以正常工作,但当设备进入睡眠模式时,1 或 2 分钟后它会断开与服务器的连接并停止通信。所以为了解决它,我编写了代码,将 WiFi 睡眠策略设置为 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();
}
}
Run Code Online (Sandbox Code Playgroud)
如果您有任何其他疑问,请告诉我。准备提供帮助!
| 归档时间: |
|
| 查看次数: |
5484 次 |
| 最近记录: |