У меня есть ArrayList строки в моей деятельности, и я хочу сохранить его как onPause в SharedPreference и извлечь его в моем onCreate (), но я не могу этого сделать.
вот мой код -:
public static ArrayList<String> ignoredTasks;
public static final String PREF_FILE_NAME = "savedPreferences";
@Override
public void onCreate(Bundle savedInstanceState)
{
ignoredTasks = loadBackStates();
}
@Override
public void onPause()
{
super.onPause();
Log.e(TAG, "I am pause");
saveState();
}
@Override
public void onStop()
{
super.onStop();
Log.e(TAG, "I am stop");
saveState();
}
@Override
public void onDestroy()
{
super.onDestroy();
Log.e(TAG, "i am destroy");
saveState();
}
public void saveState()
{
SharedPreferences spr = getSharedPreferences(PREF_FILE_NAME, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = spr.edit();
int size = ignoredTasks.size();
editor.putInt("size", size);
for(int k = 0; k < size-1; k++)
{
editor.putString(k+"4", ignoredTasks.get(k));
editor.commit();
}
//editor.commit();
}
public ArrayList<String> loadBackStates()
{
ArrayList<String> ignoredTask = new ArrayList<String>();
SharedPreferences sp = getSharedPreferences(PREF_FILE_NAME, Context.MODE_PRIVATE);
int size = sp.getInt("size", 0);
for(int k = 0; k < size-1; k++)
{
ignoredTask.add(k, sp.getString(k + "4", " "));
}
return ignoredTask;
}
public void createMenuDialog(final int i, Drawable icon, final String taskName, final String pkgName)
{
final AlertDialog.Builder menuDialog = new AlertDialog.Builder(this);
menuDialog.setIcon(icon);
menuDialog.setTitle(taskName);
menuDialog.setItems(menuItems, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
/* User clicked so do some stuff */
String[] items = menuItems;
if(items[which].equals("Ignore"))
{
HashMap<String,String> newItem = new HashMap<String,String>();
newItem.put("Process", pkgName);
newItem.put("Name", taskName);
ignored.add(newItem);
ignoredTasks.add(pkgName);
}
}
});
menuDialog.show();
}
Проблема в том, что когда я выхожу из приложения, используя клавишу возврата, а затем, если я перезапускаю его снова, я могу видеть общие предпочтения, но когда я принудительно закрываю свое приложение, оно исчезает. в чем проблема?
Пожалуйста, помогите !!
Спасибо