My widget application only works if I install the widget add it to the screen and then install it again, if i add another widget i have to install again in order for the second one to start working (rebooting the device also helps, after the reboot all the widgets on the screen work, I have config file, and it does not reach my appWidgetProvider (the action is set on the onUpdate method), how can i force my APP to update the widget from the configuration file? my config class:
public static final String SHARED_PREFS = "prefs";
public static final String KEY_BUTTON_TEXT = "keyButtonText";
private int appWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID;
private EditText example_widget_imageview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_example_app_widget_config);
Intent configIntent = getIntent();
Bundle extras = configIntent.getExtras();
if (extras != null) {
appWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID,
AppWidgetManager.INVALID_APPWIDGET_ID);
}
Intent resultValue = new Intent();
resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
setResult(RESULT_CANCELED, resultValue);
if (appWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) {
finish();
}
example_widget_imageview = findViewById(R.id.edit_text_button);
}
public void confirmConfiguration(View v) {
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(this);
String buttonText = example_widget_imageview.getText().toString();
RemoteViews views = new RemoteViews(this.getPackageName(), R.layout.example_widget);
views.setCharSequence(R.id.btn_txt, "setText", buttonText);
SharedPreferences prefs = getSharedPreferences(SHARED_PREFS, MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString(KEY_BUTTON_TEXT + appWidgetId, buttonText);
editor.apply();
Intent resultValue = new Intent();
resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
setResult(RESULT_OK, resultValue);
finish();
appWidgetManager.updateAppWidget(appWidgetId, views);
}
}
Thanks!
from widget only works after 2 installs or reboot
No comments:
Post a Comment