如何避免用户在下载过程中关闭导致wifi关闭的屏幕

时间:2014-01-06 08:01:22

标签: android

在我的应用程序中,我使用AsyncTask下载大文件(300M +)。我注意到当用户关闭他们的屏幕(锁定他们的设备)时,wifi将断开连接并且下载将挂起。

我想知道是否有可能避免这种情况?

2 个答案:

答案 0 :(得分:1)

您需要在应用程序中实现WakeLock。 Wakelock会唤醒CPU屏幕关闭并以正常方式执行操作。

在启动AsyncTask之前记下以下代码,

PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK|PowerManager.ACQUIRE_CAUSES_WAKEUP, "bbbb");
wl.acquire();

您需要在PostExecution()方法上编写wl.release();。您需要在AndroidManifest.xml中定义权限,如下所示,

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

答案 1 :(得分:0)

这种情况下的常见做法是采用WakeLock让CPU保持清醒状态,然后使用WifiLock保持wifi连接,以便即使屏幕转动,您的应用也能继续运行关闭。

完成后别忘了释放锁!