6

で終わるクラスの例をよく見かけますfinish()が、必ずというわけではありません。私の質問は、いつクラスを終了する必要があるfinish()かです。そして、それは正確に何をしますか?戻るボタンでクラスを終了することと、で終了することの違いは何finish()ですか?

前もって感謝します!

4

5 に答える 5

9

finish()Activity インスタンスを強制終了 (破棄) するために呼び出すことができます。多くの場合、Activity マニュアルを閉じる必要がない場合は、このメソッドを呼び出す必要はありません。

ただし、アクティビティのどこかに「閉じる」というボタンが必要な場合は、このメソッドを使用する必要があります。しかし、一般的に、Android の戻るボタンの動作は、このようなことを処理します。

戻るボタンは実際にはアクティビティを終了せず、すぐfinish()にメソッドを呼び出しますが、戻るボタンは終了しません。onDestory()

戻るボタンが押されると、 onStop()メソッドが呼び出されonDestory()ますが、システムによってメソッド呼び出しが遅延される可能性があります。これにより、完全な再起動よりも (リソースの点で) 低コストでシステムによってアクティビティを再開できます。

ライフサイクル: http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle

終了(): http://developer.android.com/reference/android/app/Activity.html#finish()

于 2012-10-16T10:03:27.143 に答える
2

特定の時点ですぐに終了する必要がある場合は、メソッドでActivityクラスを終了します。戻るボタンを押すと、ライフサイクル( 、その後自動的に.finish()ActivityonPause()onStop()onDestroy())

于 2012-10-16T10:05:50.117 に答える
2

終了を使用する理由の 1 つは、アクティビティを開始したときです。

void android.app.Activity.startActivityForResult(Intent intent, int requestCode)

この場合、別の startActivity で開始した Activity に戻るのではなく、finish で戻ります

于 2012-10-16T10:05:58.410 に答える
1

パブリックボイド仕上げ ()

アクティビティが完了し、閉じる必要があるときにこれを呼び出します。ActivityResult は、onActivityResult() を介してあなたを起動した人に伝播されます。

finish()アクティビティで行う必要があることを行った後、アクティビティ インスタンスを強制終了するために呼び出されます。その後、アクティビティには使用できません。したがって、単純に呼び出すだけfinish()で、アクティビティが強制終了されます。

戻るボタンを押すとfinish()、アクティビティを強制終了するために自動的に呼び出されます。アクティビティのライフサイクル( onPause()onStop()そして最後にonDestroy())を通過します。

finish() を呼び出す理由の 1 つは、それを呼び出さない場合、アクティビティをナビゲートするときに、すべてのアクティビティがバックスタックに追加されることです。ですから、戻るときは、これらの活動を経て戻ってくる必要があります。たとえば、戻るボタンをクリックすると、単にアクティビティが強制終了され、バックスタックから削除されます。

于 2012-10-16T10:09:37.223 に答える
1

戻るボタンはスタック内の最後のアクティビティに移動しますfinish()が、現在のアクティビティは破棄されます。finish()ユーザーが戻りたくないアクティビティを呼び出すことができます。例: ログイン アクティビティ

于 2012-10-16T10:14:46.300 に答える