我在Thread或AsyncTask
中創建了HttpURLConnection
,它工作正常。 但是,當設備處於睡眠模式時,(顯示屏關閉...),然後通過打開連接 - >java.net.ConnectException: Connection refused
獲得 例外。通過mobild數據拋出URL openConnection拋出設備睡眠時出現ConnectException
我的想法是用PowerManager.PARTIAL_WAKE_LOCK
喚醒設備,但這沒有幫助。
另一個從PowerManager定義的例如ACQUIRE_CAUSES_WAKEUP已被棄用。
我能做些什麼來創建成功的連接?
代碼:
URL url = new URL("myUrl...");
HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection();
urlConnection.connect();
int response = urlConnection.getResponseCode();
if (response == HttpURLConnection.HTTP_OK) {
// to do some work
}
你應該考慮告訴我們你真正想要達到什麼。代碼片段不足以猜測。順便說一句,「顯示關閉」和「睡眠模式」並不完全相同。很多東西都可以由用戶配置,您需要考慮(例如,在睡眠模式下放置WiFi)。請編輯您的問題並告訴我們:爲什麼在設備睡眠時需要連接?在設備醒來時有沒有機會建立連接,但應該在睡着時使用?您提取多少數據以及多久?你對服務有什麼瞭解? –
我認爲你的問題看起來好多了,只需要一點點改進(https://meta.stackoverflow.com/a/291370/1783163)。看,我編輯後的效果如何。你也可以做到這一點。 – peterh
當我的智能手機的位置發生變化(每〜4分鐘)時,我只想要一個簡單的http GET和POST請求到服務器。 請求數據少於100個字節。 當人機界面打開時,它工作正常。 顯示屏關閉後,連接無法打開。 我知道服務。 –