2013-10-23 82 views
0

你知道一旦它被解僱了,是否有可能推遲onStop方法?ANDROID:是否可以延遲onStop?

我重寫了onStop()方法,我想在它調用super.onStop()之前添加一個小的延遲。

(我有一個顯示視圖 - 對話與戶主的表面,當我關閉活動,認爲是仍然可見的活動 - 像1秒 - 雖然已經顯示的主屏幕或前活動)

我有多種關閉活動的方式,我不想爲每種方式實現這種行爲,這種方式將它放入onStop()對我來說是個好主意。

在此先感謝。 G.

+0

爲什麼你想要這個延遲?從用戶體驗的角度來看,對我而言聽起來很像,你會希望與曲面支架的對話更快消失。你能提供一些示例代碼來重現問題嗎? –

回答

-1

這只是一個猜測,完全未嘗試,但你可以在super.onStop()之前不要致電Thread.sleep(1000)

+1

這是**不是**你應該在onStop方法中做的事情。 –

+0

夠公平的,這只是一個猜測:P –

0

不,這是不可能的。

1)您不能在UI線程方法中延遲超過幾個毫秒的時間,而不會冒着應用程序不響應錯誤的風險。

2)在返回之前必須調用superclass方法,否則一般會產生錯誤。

若要在UI方法延遲的時間發生某些事情,您需要啓動計時器。但是,當Activity停止可見性時,會調用onStop(),因此即使您設法運行一些代碼,以後也不會真的看到任何可見的內容。另外,請記住,onStop()可能會在onDestroy()方法中被調用 - 如果後者甚至在破壞之前甚至被調用(不保證它會被破壞)。所以你的計時器延遲代碼可能甚至不能運行。

+0

我希望這是不準確的。需要研究合適的時間 - Android對合理時間的定義是什麼。請注意,如果Android *應該有任何UI調用會有點寬鬆,那麼它就是'onStop',因爲這是應用程序的最後機會,以確保它們保留了他們所關心的任何內容。您是否有任何證據證明onStop有哪些/哪些不可能? – ToolmakerSteve

+0

允許的時間在Android的歷史和配置中各不相同,但UI線程方法必須立即返回的規則始終是絕對的規則。 –

相關問題