12

Androidのドキュメントを見ると、アプリがいつシャットダウンするかを知ることができないようです。それがユーザーによって明示的に行われたか、オペレーティングシステムによって自動的に行われたか。

以下は、エミュレートされたシナリオでのみ利用可能なonTerminate()ドキュメントです。

public void onTerminate()

以来:APIレベル1

このメソッドは、エミュレートされたプロセス環境で使用するためのものです。プロセスを強制終了するだけでプロセスが削除される本番Androidデバイスでは呼び出されません。その際、ユーザーコード(このコールバックを含む)は実行されません。

ユーザーがアプリケーションを閉じたときに報告する他のアプローチはありますか?

パイロット/ユーザビリティの観点から、将来の本番アプリに追加機能を組み込む必要があるかどうかを知る必要があります。

4

3 に答える 3

5

これがあなたを助けるかどうかわからない...

私のアプリでは、必要なクリーンアップを行うためにActivity.onDestroy()を使用しています。私にはいくつかの活動がありonDestroy()、それぞれに活動があります。

これは、私が必要としていることに最も近いものであり、実際には非常にうまく機能します。

于 2011-09-29T17:55:03.440 に答える
3

Androidのドキュメントを見ると、アプリがいつシャットダウンするかを知ることができないようです。それがユーザーによって明示的に行われたか、オペレーティングシステムによって自動的に行われたか。

ユーザーはAndroidでアプリケーションを閉じません。

ユーザーがアプリケーションを閉じたときに報告する他のアプローチはありますか?

ユーザーはAndroidでアプリケーションを閉じません。

この点で、AndroidはWebブラウザのように動作します。ユーザーは、WebブラウザーでWebアプリケーションを閉じません。ブラウザを閉じる可能性があります。タブを閉じる可能性があります。ホームボタンを押して、別のサイト/アプリに移動する場合があります。ブックマークを選択して、別のサイト/アプリに移動する場合があります。ドキュメントをブラウザにドラッグして表示する場合があります。デスクトップアイコンをダブルクリックして表示する場合があります。また、現在表示されているWebサイト/アプリの「ログアウト」リンクをクリックする場合もあります。これらのいずれかにより、ユーザーは現在のWebサイト/アプリを離れますが、デスクトップOSウィンドウの閉じるボタンをクリックしたと解釈されるのと同じようにWebサイト/アプリを「閉じる」と解釈されることはありません。デスクトップアプリを「閉じる」ように。

@Aleks Gが指摘しているように、アクティビティに関してユーザーが何をしているかを調べるためにオーバーライドできるさまざまなライフサイクルメソッドがあります。onStop()他の何かがフォアグラウンド入力を引き継ぎ、現在のアクティビティが表示されなくなったことを示します。onUserLeaveHint()ユーザーがHOMEを押したことを示します。等々。ただし、これらはアプリケーションレベルではなく、アクティビティレベルにあります。

于 2011-09-29T18:00:12.657 に答える
1

アプリケーションでアクティビティを拡張する BaseActivity を作成し、アクティビティの代わりにこの BaseActivity を拡張します。この BaseActivity で onDestroy() メソッドをオーバーライドします。お気に入り

 @Override
 protected void onDestroy() {
      super.onDestroy();
     //Write the code that you want to do if the application terminates
 }
于 2015-08-04T08:56:58.310 に答える