三星设备,在后台一段时间后没有互联网连接

时间:2018-04-16 13:08:25

标签: android samsung-mobile android-background android-internet

在我的应用程序中,当发生特定事件时(例如电池电量低于10%),我需要每天向服务器发送一些数据(例如电池电量低于10%)

它在前台运行良好,但在后台出现问题,特别是在三星设备上。

我发现在尝试发出HTTP请求后在后台大约8分钟后,由于互联网连接不可用,它总是失败 。 (这不是打盹模式问题!)

查询连接管理器确实批准当时没有连接。

ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
return netInfo != null && netInfo.isConnected(); \\ FALSE IN THIS CASE

我考虑过使用JobScheduler,但问题是从事件发生的那一刻起数据发送时间不应超过30秒。

所以我尝试使用最后的解决方案 - 获取唤醒锁。

PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wakeLock = pm.newWakeLock((PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "WakeLock");
wakeLock.acquire(10000);

它有帮助,但有50%的时间。

似乎也是在将设备唤醒10秒后,仍然没有互联网连接。

我完全没有想法。

还有其他解决方案我没有想到吗?

谢谢!

0 个答案:

没有答案