5

一連のアクティビティと 1 つのバックグラウンド サービスが実行されている 1 つの Android アプリを開発しました。一部のアプリ データをデバイスの内部メモリに保持しているため、ユーザーが [設定] -> [アプリケーション] -> [データの消去] ボタンから [データの消去] オプションをクリックすると、内部メモリに保存されたすべてのデータが消去されます。ユーザーがアプリのサービスまたはブロードキャストレシーバークラスでデータの消去ボタンをクリックしたときに、データの消去のクリックイベントまたはアクション(利用可能な場合)をキャプチャする必要があります。アプリのデータの消去をクリックすると、デバイスによってスローされるアクションがあることを誰でも提案できますかアプリのブロードキャストレシーバークラスでそのアクションをキャッチして、目的のタスクを実行できますか???

いくつかの例で解決策を教えてください。

よろしく、ピクス

4

4 に答える 4

7

最善の方法は、アプリを最初に実行するとき、または必要なすべての詳細を保存するときに、"IS_DATA_CLEARED" のような値を SharedPreferences に格納し、アプリのライフ サイクル中にいつでもこの値が変更されないようにすることです。

SharedPreferences appSharedPrefs = PreferenceManager
            .getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = appSharedPrefs.edit();
editor.putBoolean("IS_DATA_CLEARED",false);
editor.apply();

次に、毎回以下のチェックを行います。

SharedPreferences sharedPreferences = PreferenceManager
            .getDefaultSharedPreferences(this);
boolean IS_DATA_CLEARED =  appSharedPrefs.getBoolean("IS_DATA_CLEARED",true);

if(IS_DATA_CLEARED){
  //DATA IS CLEARED
}
else{
  //DATA IS NOT CLEARED
}
于 2016-02-23T17:00:10.747 に答える
3

ユーザーがアプリのサービスまたはブロードキャストレシーバークラスでデータの消去ボタンをクリックしたときに、データの消去のクリックイベントまたはアクション (利用可能な場合) をキャプチャする必要があります。アプリのデータの消去をクリックすると、デバイスによってスローされるアクションがあることを誰でも示唆できますアプリのブロードキャストレシーバークラスでそのアクションをキャッチして、目的のタスクを実行できますか???

なにもない。私の知る限り、Clear Dataを押すとプロセスも停止するため、コードは実行されません。ユーザーが Clear Data を押した場合、ユーザーがアプリを初めてインストールした場合と同じように扱います。

于 2012-05-22T11:42:47.677 に答える
-1

おそらく、マニフェストにブロードキャスト レシーバーを設定し、

「android.intent.action.PACKAGE_DATA_CLEARED」

アプリケーションのデータが設定から消去されたときにブロードキャストされるインテント。これに関する詳細は、Android 開発者の Web サイトで確認できます。

http://developer.android.com/reference/android/content/Intent.html#ACTION_PACKAGE_DATA_CLEARED

于 2015-09-11T09:41:37.450 に答える