Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 应用程序终止时删除首选项数据_Android_Sharedpreferences_Ondestroy_Android Ondestroy - Fatal编程技术网

Android 应用程序终止时删除首选项数据

Android 应用程序终止时删除首选项数据,android,sharedpreferences,ondestroy,android-ondestroy,Android,Sharedpreferences,Ondestroy,Android Ondestroy,在我的应用程序中,我存储了一些共享的参考数据 我必须清除应用程序关闭时存储的所有数据 因此,我在我的活动的onDestroy()中做了如下操作: @Override protected void onDestroy() { if(isBackPressed==0){ if(Prefrences.checkPref(MyActivity.this,MAIN_PREF)){ Prefrences.removePref(MyActivity.this,

在我的应用程序中,我存储了一些共享的参考数据

我必须清除应用程序关闭时存储的所有数据

因此,我在我的活动的
onDestroy()
中做了如下操作:

@Override
protected void onDestroy() {

    if(isBackPressed==0){
        if(Prefrences.checkPref(MyActivity.this,MAIN_PREF)){
            Prefrences.removePref(MyActivity.this,MAIN_PREF);
            Prefrences.removePref(MyActivity.this,PREF_1);
            Prefrences.removePref(MyActivity.this,PREF_2);
            Constant.displayLogE(">>>>>>>>>>","### Prefrence removed ");
        }
        Constant.displayLogE(">>>>>>>>>>","### Destroy activity ");
    }
    finish();
    super.onDestroy();
}
这里,我采用了
isBackPressed
,因为当onBackPressed调用时,它会自动调用finish(),而onDestroy()方法会调用。因此,我在
onBackPressed()
方法中将
isBackPressed
初始化为1

这没关系,我只要在应用程序被终止时删除我的优先权数据就行了。但是,问题是当我杀死应用程序时,
onDestroy()
method没有调用

谢谢。

这样试试

public class App extends Application{

    @Override
    public void onCreate() {
      doSomeCleanWork();
    }
}

调用finish();在super.ondestory()之前;如果你想在应用程序被终止时清除数据,那么你为什么要存储它呢?为什么不把它保存在变量中,当应用程序被关闭时,变量将被清除?@Tufan不起作用。我刚换了。未调用onDestroy()。日志未插入Android监视器。@VladMatvienko当用户单击NEARME按钮并相应显示地图时,我必须获取Lat并渴望特定位置。现在,当用户从任何其他活动返回时,应该根据先前搜索的位置加载地图。这就是为什么。。那么,有什么解决办法吗?先生,如果我在一个活动中取一个默认值为10的静态变量,并将其更改为20,那么直到活动被销毁(更改)或应用程序被销毁为止,它仍然是20?活动被销毁所以,在我记忆近处的感觉中,最好使用Prefrence而不是静态变量?是的,也可以在应用程序中使用静态变量。