2012-07-23 9 views
11

デフォルトの動作を持つデフォルトの空のアクティビティがあり、デフォルトのインテントフラグが設定されているとします。ユーザーがデバイスの戻るボタンを押します。活動は消えます...しかし、どうですか、実際には?Androidのバックボタンの動作

  • finish()と同じように動作するボタンを押していますか?
  • このアクティビティは即時に破棄されますか(onDestroyが呼び出されますか?
  • アクティビティは破棄されることが保証されていますが、即時ではありませんか?
  • このアクティビティが将来起動されたときにアクティビティが破棄されず、このインスタンスが再利用される可能性はありますか? (これだけとonStop - >onStartonResumeが呼ばれて?)私は信頼できる答えを探しています

、あなたはここで何が起こるか全くわからない場合はそう答えないでください。

+4

これはあなたの興味のあるかもしれません:http://developer.android.com/training/basics/activity-lifecycle/index.html –

+0

あなたのコードを投稿することができますので、より良い判断ができます –

+1

'default 、デフォルトの動作の空のアクティビティ、デフォルトのインテントフラグで起動しました。再現できません。 IDEにデフォルトプロジェクトを作成するだけです。 –

答えて

6

http://developer.android.com/training/basics/activity-lifecycle/recreating.html

これはサブチャプターですあなたの質問に対処する公式のAndroidのドキュメントから。それはアンドロイド活動の行動についての詳細を知るための全体の章を読んで、間違いなく価値がある http://developer.android.com/training/basics/activity-lifecycle/index.html

:それはここで読むことができトピックManaging the Activity Lifecycleのサブチャプターです。しかし、サブチャプター(第1リンク)はこの質問の関連部分です。

+0

これは[リンクのみの回答](http://meta.stackexchange.com/q/8231/247470)ですので、文書の関連部分を引用してください。あなたがそれらの記事を読んで、ソクラテスの方法を試して、[スポイラーのマークダウン](http://meta.stackexchange.com/q/1191/247470)を使って人々を強制的に善行にしたいと思うように感じます。 – TWiStErRob

1

ユーザーがBACKキーを押すと、現在のアクティビティがスタックの先頭からポップされます(アクティビティは破損することは保証されていますが、システムリソースが低い場合はすぐには発生しない可能性があります) (UIの以前の状態が復元されます)。 (おそらくActivityManager経由)OS(キーボード、フラグメント、活動、などのようなものによって遮断されていない場合)

Which actions does the back button/back key on Android trigger?

+0

この質問を参照してください:http://stackoverflow.com/questions/4778754/kill-activity-on-back-buttonそれは常に破壊されている場合は、ボタン? –

+0

また、ここで受け入れられた答えをチェックしてください:http://stackoverflow.com/questions/3249332/did-back-key-destroy-an-activity –

2

は、あなたの現在のタスクでユーザーに前のアクティビティを表示しようと、背中を押したとき(再びフラグメントのバックスタックを無視する)。

このようなアクティビティがない場合、タスクは終了し、前のタスクに移動します。ほとんどの場合、ホームスクリーンまたはアプリを起動した可能性のある他のアプリケーションです。

すぐにonDestroyが呼び出されます(次のアクティビティを開始するには時間がかかりますが、いい電話では100〜200ミリ秒以下にする必要があります)。

アクティビティインスタンスは、onFinish以降には再利用されません。これは、アクティビティが破棄される前に発生します。そのため、同じタイプの別のアクティビティが必要な場合、OSは別のインスタンスを作成します。

+0

これは私が尋ねたことではありません。問題は十分正確です。 –

+0

"活動は消えて...でも、実際には?" - 私はあなたの質問に対処したと思います –

+0

それはあなたの問題です。あなたは思考せずに最初の文章を読んだだけです。あなたが残りの部分を読めば、私は正確に何を求めているのかを説明したことに気付くでしょう。 –

2

あなたはこのtry this

になります使用して、あなたのデフォルトの活動のためのバックボタンで行いたいものを具体的に教えてくださいは......

0

確定onDestroy()と呼ばれています。ユーザーが[戻る]ボタンを押すか、自分のアクティビティがfinish()を呼び出して自分の破壊を知らせるなど、通常のアプリケーションの動作によってアクティビティが破壊されるシナリオがいくつかあります。

関連する問題