2017-05-23 47 views
0

我的應用程序與藍牙外設相連接。當外圍設備想要關閉時,我可以簡單地通過調用我自己的Activity自己的onPause()onStop()方法來清理應用程序嗎?他們稱超類的方法是否可能導致任何問題?一個Activity可以調用它自己的onPause(),onStop()嗎?

這個想法將在此後致電finish()

+0

如果您只調用了finish(),則將調用所有適當的生命週期方法(onPause,onStop,onDestroy)。不建議直接調用這些生命週期方法。 –

+0

你*可以*,但我會建議反對它。 – Submersed

回答

0

你可以手動調用它們,但不應該讓Android在需要時自己做。如果你想調用這些活動,你可能不再需要這個活動,所以你可以調用finish,然後android會根據活動生命週期調用相關的方法。

您可以通過here

+0

謝謝。非常熟悉生命週期文檔,但沒有看到我的問題具體解決。 –

0

從技術上來說,是的,你可以找到關於該活動的生命週期的更多信息。你應該問的是「我應該」嗎?答案是否定的。如你所說,因爲他們確實調用超類方法,所以會發生一些額外的Android操作系統清理魔術。偶爾會導致成功案例,但不能保證。背景中發生了很多事情,你不想與之混淆。不要重新發明輪子。

如果是在和onStop方法,你想在其他地方使用中遇到的代碼,我會創建一個名爲cleanupBluetooth功能和和onStop會打電話和其他地方需要的地方。

如果您需要實際調用和onStop方法,因爲你需要停止和暫停的活動,你可以做,通過調用finish()how to use finish())。 finish()方法將調用需要調用的相應的Android操作系統魔術。

0

OnPause()也是您的活動中的一種方法,它可能是正常的方法。它覆蓋活動的方法,你可以從活動的任何地方和從界面中調用它。

相關問題