8

私の活動のほとんどはサーバーから動的データをロードし、ページが再びフォーカスされると、とにかくページをリロードします。リロードするだけならそのままにしておくのはもったいないので、ユーザーがページから離れた場合に、finish() を呼び出すことを考えました。

戻るボタンを押して移動できるアクティビティと、finish() を呼び出したためにできないアクティビティがある場合は混乱します。そのため、ユーザーがナビゲートするすべてのアクティビティで finish() を呼び出すだけの悪い習慣ではないかと考えていました。 ? (すべてのアクティビティの下部にナビゲーション バーがあるので、戻るボタンは必要ありません)。または、どのアクティビティでも finish() を呼び出さず、電話の速度が低下せず、OS がガベージ コレクションを処理してくれることを願うだけの方がよい方法ですか?

私は Android プログラミングに不慣れで、Android フォンを持っていないので、この状況で何が一般的/ベストプラクティスなのか、それとも単に個人的な好みの問題なのかわかりません。

また、戻るボタンが機能するように Android にアクティビティの履歴を保持するように指示することはできますか?

4

3 に答える 3

6

アクティビティに戻ったときにすべてのデータをリロードできますが、 を呼び出す意味はありませんfinish()

アクティビティが隠されている場合、それらはリソースを使用せず、実際の問題はありません。それらをそのままにしておくだけで、ユーザーが戻ると、必要に応じて再読み込みされます。

この状態では、必要に応じてガベージ コレクションを行うこともできます。これはすべて Android によって処理されます。

于 2012-07-12T20:20:43.210 に答える
0

ほとんどの場合、finish(); を呼び出す必要はありません (すべきではありません)。Android がアクティビティを管理します。

ユーザーがアクティビティを離れたときにクリーンアップを行う必要がある場合は、onDestroy() などのさまざまなアクティビティ コールバックでそのようなことを行うことができます。

まだ行っていない場合は、Android デベロッパー ガイドのアクティビティをお読みください。

于 2012-07-12T20:21:55.353 に答える
0

finish()アクティビティが長時間実行されないことが確実でない限り、呼び出すべきではありません。それをどうするかは、Android に任せたほうがよいでしょう。クリーニング コードをonPause()に、ロード コードを に入れますonResume()

于 2012-07-12T20:22:19.453 に答える