У меня проблема с PreferenceActivity
используется для настройки предпочтений для виджета приложения. Дело в том, что когда я хочу передать PreferenceActivity
любую информацию через Intent
только в первый раз, я могу их прочесть. После того, как информация, указанная в Intent
, отличается, те ранее сохраненные сохранены, и я не вижу новых. Единственное, что нужно сделать, это удалить полностью приложение из системы и установить его снова. Но опять же все будет выглядеть так же (первая информация останется). Другая важная вещь заключается в том, что я не сохраняю ее нигде, просто показывая ее в тексте ярлыка и в LogCat
.Как вы можете отправить более одного намерения в функцию предпочтения?
Те фрагменты кода отвечают за это:
Widget активность
// Actions required to open settings activity
Intent intentSettings = new Intent(context, PrefActivity.class);
intentSettings.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS,
appWidgetIds);
intentSettings.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, (allWidgetIds.length+number));
PendingIntent pendingIntentSettings = PendingIntent.getActivity(
context, 0, intentSettings, 0);
remoteViews.setOnClickPendingIntent(R.id.imb_ustawienia,
pendingIntentSettings);
Предпочтение деятельности
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("Info","onCreate");
addPreferencesFromResource(R.xml.pref);
Bundle intentIn = getIntent().getExtras();
Log.d("SIZE", "" + intentIn.size());
if (intentIn == null) {
Log.d("Tag","Intent is empty");
}
else
{
widgetId = intentIn.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
allWidgetIds = intentIn.getIntArray(AppWidgetManager.EXTRA_APPWIDGET_IDS);
Log.d("Pref","id: " + widgetId + " ids: " + allWidgetIds.length);
}
final CheckBoxPreference checkboxPref1 = (CheckBoxPreference) getPreferenceManager().findPreference("checkboxPref1");
//...
final Preference opt1 = (Preference) findPreference("settings1");
opt1.setSummary("Widget's id: " + widgetId);
opt1.setOnPreferenceClickListener(new OnPreferenceClickListener() {
//...
}
@Override
protected void onStop() {
super.onStop();
Intent infoIntent = new Intent(DataAppWidgetProvider.FORCE_WIDGET_UPDATE);
infoIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, allWidgetIds);
this.sendBroadcast(infoIntent);
finish();
}
Знаете ли вы, что может быть проблема? Похоже, что что-то где-то сохраняется без моей воли, и это все блокирует.