2016-10-17 13 views
0

onDestroy()は、戻るボタンを押したときにのみ呼び出され、ではなく、が最近のアプリを使用して閉じるとき(クロスを押すか、アプリケーションをスライドさせるとき)、またはアプリケーションマネージャで検出されました。アプリがアンドロイドで閉じられたときに呼び出されるメソッドは?

以下

onDestroy()で私のコードです:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { 
      ((ActivityManager) getActivity().getSystemService(Context.ACTIVITY_SERVICE)) 
        .clearApplicationUserData(); 
    } 

onDestroy()が呼び出されたとき、私は、データとキャッシュを削除するためにコードを書いた誰かが戻るボタンを押すので、もし、データおよびキャッシュがクリアされ、アプリが閉じ(代わりにバックグラウンドに行っている)が、最近のAppsやApp Mangerから閉じると、データとキャッシュが残ります。

アプリが閉鎖されているときにデータを削除するにはどうすればよいですか?

+0

お手伝いがあります。検索してみてください。 [リンク](http://stackoverflow.com/a/26882533/6005977) –

+0

[ここにあなたの質問のフルdescrptionがあります](http://stackoverflow.com/questions/19897628/need-to-handle-uncaught-例外と送信ログファイル) – Godwin

答えて

0

ServiceonTaskRemoved最近のアイテムからアプリを削除するときに呼び出されます。

2

最近のアプリ(クロスを押すかアプリをスライドさせる)やアプリケーションマネージャを使用してアプリを閉じると、戻るボタンが押されたときにのみOndestroy()が呼び出されることがわかりました。

onDestroy()は、特定のアクティビティまたはサービスで呼び出される場合とされない場合があります。一般的な規則は、 のいずれかが呼び出されているか、プロセスが終了しているか、コードがクラッシュしています。

アプリが終了したときのデータの削除方法を教えてください。

あなたはありません。お客様のプロセスは、何らかの理由で、いつでも、ユーザーまたはOSによって終了することがあります。その場合は、onDestroy()と呼ばれる場合とされない場合があります。 onTaskRemoved()Serviceで成功率を少し向上させることができますが、これ自体は信頼性が低いと証明されており、すべてのシナリオをカバーするわけではありません。

プロセスが終了したときにデータをファイルに入れたくない場合は、最初にファイルを作成しないでください。メモリ内のデータを保持するだけです。

0

タスクマネージャからアプリケーションを閉じるときに、強制的にonDestroy()メソッドが呼び出されたことを確認しました。私はこのようなテスト:

  1. は、ホームボタンを使用してアプリケーションを最小化 - >これは、その後onDestroy()がそのMainActivity(ランチャー)のために呼び出され、タスクマネージャからアプリを削除

    onPause() 
    onStop() 
    
  2. 呼び出します。

Androidでアプリケーションを終了するという概念はありません。

共有の設定を使用している場合、キャッシュ値を維持する方法は、ユーザーがログアウトしたときに共有の設定値をクリアする必要があります。あなたが強制的にスタックから削除されるまでのAndroidアプリで

は閉じていません。ちょうど特定のアクティビティが破棄されます。

ベストプラクティスは、ユーザーがログインすると、共有設定またはグローバル変数に資格情報を格納しています。ユーザーが特定のアクティビティからログアウトすると、セッションまたはキャッシュされた値がクリアされます。

アプリケーションが完全に閉じているときに、キャッシュされた値をクリアしたい場合は

は、グローバル変数(静的変数)の代わりに、共有設定を使用します。

class GlobalValues{ 
    public static String userName; 
    public static String password; 
} 

静的変数は、アプリケーションプロセスが完全に破棄されると破棄されます。

関連する問題