2011-11-28 37 views
2

我有一個android庫包含一個自定義Webview。當使用我的lib的應用程序暫停或恢復時,我希望我的自定義Webview不再加載數據,這將在我的lib上處理,而不是在應用程序上處理。那麼,我該如何知道應用何時暫停或從我的android庫中恢復?如何檢測android應用程序暫停庫?

+0

如果活動暫停,您確定可以繼續使用WebView嗎? –

+0

從logcat我看到onPageFinished(..)仍在運行,這意味着WebView仍在加載數據。 – Wayne

+0

我也在尋找這個功能。誰能幫我? –

回答

0

在線程中運行webview加載函數。並分別暫停或恢復onPause或onResume事件的線程。

對於您需要override onPause-onResume

如何暫停/恢復線程看到這一點。 http://www.exampledepot.com/egs/java.lang/PauseThread.html


我不知道,我完全理解你的問題。但從你的問題"how can I know when the app is paused or resume from my android library?",我的意思是你想檢測庫類中的onPause和onResume事件,並讓其他用戶使用它。

在這種情況下,我認爲以下將是解決方案。

這樣做:

//for your library 
public class LibraryWebViewActivity extends Activity{ 
//override onPause and onResume here 

} 


//to be used by users of library : 
public class UserLibraryWebViewActivity extends LibraryWebViewActivity{ 

//override onCreate....and other method here.... 

} 
+0

感謝您的回覆,但我想知道onPause和onResume何時發生在我的庫上,而不是在應用程序中使用我的庫。 – Wayne

+0

你是由我的圖書館引用? onPause事件發生在您按下應用程序並且您的應用程序轉到後臺時。並且當您稍後打開之前已經背景的應用程序時,就會發生onresume。 – gtiwari333

+1

他正在提供一個定製的webview(+可能更多),其他人會將其實施到他們的活動中 - 所以他無法控制他們的活動。 – FunkTheMonk

0

我會讓你的WebView有自己的暫停和恢復該庫的用戶必須從他們的活動調用的方法。如果簡歷尚未被調用,則可以在執行任何加載時拋出IllegalStateException,但這取決於您想要的嚴格程度。

+0

謝謝你,但是我想處理WebView的暫停和恢復lib上的方法,並且使用我的lib的人不知道這一點。 – Wayne

+0

可以使WebViewActivity,他們必須擴展而不是活動(如果他們想要一個MapActivity或類似WebtrendsActivity的東西不好,)或者你可以檢查每500ms或前往哪個應用程序在前臺。 – FunkTheMonk

0

這是我簡單的解決方案:

因爲我定製的WebView仍在加載數據時,應用程序暫停狀態,所以onPageStarted(..)也運行過。爲了檢查應用程序是否暫停,我只是簡單地使用了isShown()方法。當然,這隻適用於我的情況,因爲如果應用程序正在運行,我的定製WebView將始終顯示。

謝謝大家的回覆!