【发布时间】:2017-04-21 20:18:36
【问题描述】:
我实现了 Volley Request 间隔来定期触发请求:
final Handler handler = new Handler();
final int interval = 3000;
handler.postDelayed(new Runnable() {
public void run() {
// Volley request here...
Volleyclient client = Volleyclient.getInstance();
client.doSomeVolleyRequest(MainActivity.this, someListener, someDataToSend);
handler.postDelayed(this, interval);
}
}, interval);
只要应用程序在前台,它就可以正常工作。如果我按下主页按钮并且应用程序进入睡眠状态,我会收到 Volley TimeoutError,我无法弄清楚原因。如果我切换到“待机”模式(屏幕关闭),行为相同。一旦我将我的应用切换回前台,它就会继续截击请求。
我怀疑这不是真正的超时,而是入睡时的互联网连接权限问题。我使用以下权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
有没有人能够解释这种行为的原因? 如果您能告诉我一个解决方法,让我的应用在应用运行时继续发送请求,那就太好了。
【问题讨论】:
标签: android android-volley android-internet