1

次のユースケースを区別したいと思います。

ケース 1: ユーザーが同じアプリ内にとどまり、同じアプリのさまざまなアクティビティをナビゲートします。

ケース 2: ユーザーがアプリから移動し、デバイスのホーム画面を呼び出したり、他のアプリからアクティビティを呼び出したりする場合があります。

ケース番号 2 では、メイン アクティビティが再度呼び出されたときに一部のデータを更新したいのですが、ケース番号 1 では必要ありません。ライフサイクル メソッド onResume() と onStart() はどちらの場合も呼び出されるため、単純にコードを配置することはできません。私に何ができる?ありがとう。

4

2 に答える 2

1

アプリから移動するナビゲーション コマンドを発行するたびに共有設定に書き込み、メインのアクティビティが読み込まれたときにその共有設定を確認する必要があります。戻るボタンのケースを処理するにonBackPressed()は、アクティビティでオーバーライドできます。また、ホーム ボタンの押下を処理するには、次のブログ投稿を確認できます: http://nisha113a5.blogspot.com/。最近のアプリのスイッチャーを処理したい場合は、ホーム ボタンの方法と同様のことができます。

于 2013-09-17T21:53:56.660 に答える
0

ライフサイクル イベントを使用して、ユーザーがアプリを離れたり入ったりしたことを検出できます。動作することがわかったルールは次のとおりです。

  • ユーザーが入力すると、onResume が常に呼び出されます (現在のアクティビティで)
  • ユーザーが離れると、(現在のアクティビティで) onStop が常に呼び出されます*
  • ユーザーがアクティビティ間を移動している場合、onResume は常に新しいアクティビティで呼び出され、onStop は常に古いアクティビティで呼び出されます。onResume 呼び出しは常に onStop の前です

* onPause 呼び出しのみが表示される可能性がある電源ボタンを押す (オフにする) 場合を除きます。

詳細はこちら: http://www.artificialworlds.net/blog/2015/06/05/detecting-whether-an-android-app-is-stopping-or-starting/

于 2015-06-17T22:56:32.243 に答える