2013-06-29 57 views
0

我使用android應用程序開發邁出了第一步。想要創建一個連接到網站的應用程序,填寫表格並在提交後檢查結果。該過程每24小時以廣播接收機的形式執行。Broadcastreceiver內部的Webview

因爲此頁面正在使用javascript,因此我使用了webview。但我認爲,由於webview的異步行爲,廣播接收器對象在第一次加載頁面之前被終止。

在onReceive方法中,我創建了一個新的webview對象。在webview中添加一個JavascriptInterface,以便我可以從頁面獲取內容以解析成功或失敗。並且onPageFinished調用廣播接收器的成員方法來啓動表單填寫過程。

據我瞭解,當webview加載頁面時,執行流程將離開onReceive方法。在此之後,廣播接收器被終止,並且它也將永遠不會完成加載頁面的web視圖。

我想在離開onReceive方法之前等待一個特殊事件。但我不知道這是否是最好的解決方案,以及我如何才能做到這一點。

提前感謝所有最好的 R2P2

回答

0

技術上講,你應該甚至不能夠顯示在廣播接收機中的上下文的WebView,因爲它不是一個UI背景。

實現您的想法的最簡單的方法是讓您的Receiver啓動一個活動,然後在您的WebView工作完成時將其解除。

但是,如果您不需要與WebView進行用戶交互,則應該考慮爲自己創建一個Web服務並使用原始HTTP請求來檢索,填寫,提交和驗證您的表單。

+0

我不想顯示webview。但我不能做原始的HTTP東西,因爲頁面使用JS來生成/或加載認證過程所需的密鑰。 啓動新的活動聽起來不錯。他們在前景中產卵嗎? – r2p2

+0

@ r2p2是的,他們在前臺產卵。 –

+0

然後我會將其設置在可能的解決方案列表中。但我寧願不打斷用戶。只是想通過通知欄進行溝通(成功或失敗)。 – r2p2