2017-05-23 17 views
0

マイアプリはBluetooth周辺機器とインターフェイスします。周辺機器をシャットダウンするときは、アクティビティ自身のonPause()onStop()メソッドを呼び出すだけで、アプリをクリーンアップできますか?スーパークラスのメソッドが何らかの問題を引き起こす可能性が高いという事実はありますか?アクティビティは自身のonPause()、onStop()を呼び出すことはできますか?

その後、finish()を呼び出すことになります。

+0

'finish()'を呼び出すだけで、適切なライフサイクルメソッド(onPause、onStop、onDestroy)がすべて呼び出されます。これらのライフサイクルメソッドを直接呼び出すことはお勧めしません。 –

+0

あなたは*できますが、私はそれに対してお勧めします。 – Submersed

答えて

0

手動で呼び出すことはできますが、必要に応じてAndroidに実行させるべきではありません。これらのアクティビティを呼び出す場合は、実際にアクティビティをもう望んでいない可能性が高いので、finishを呼び出すだけで、アンドロイドがアクティビティのライフサイクルに基づいて関連するメソッドを呼び出すことができます。あなたが技術的にhere

+0

ありがとうございます。ライフサイクルのドキュメントに非常に精通していますが、具体的に対処した質問は表示されませんでした。 –

0

を行くことによって、アクティビティのライフサイクルに関する詳細情報を見つけることができます

、はい、できます。あなたが求めているべきことは「すべきか」です。答えはノーです。

あなたが言及したように、彼らはスーパークラスメソッドを呼び出すので、発生する余分なAndroid OSクリーンアップマジックがあります。それはしばらくの間、成功したケースをもたらすかもしれませんが、それは保証されません。あなたが騙されたくないバックラウンドには、多くのことが起こります。車輪を再構築しないでください。

あなたが他の場所で使用したいとonStopメソッド内走っているコードがある場合、私は関数を作成しますがcleanupBluetoothと呼ばれ、とonStopは呼ぶだろうとどこにもそれが必要です。あなたが活動を停止し、停止する必要があるため、実際にとonStopメソッドを呼び出す必要がある場合

することは、あなたがfinish()how to use finish())を呼び出すことによってそれを行うことができます。 finish()メソッドは、呼び出す必要がある適切なAndroid OSの魔法を呼び出します。

0

OnPause()はあなたのアクティビティのメソッドでもあり、通常の方法です。これはアクティビティのメソッドをオーバーライドし、アクティビティやインターフェイスからでもどこからでも呼び出すことができます。

関連する問題