У меня есть виджет, который отображает аналоговые часы. Что бы я хотел, чтобы виджет записывал в базу данных время, когда пользователь нажимает на виджет. Я уже получил класс databaseHelper и у меня есть Activity, которая отображает экран, показывающий текущую дату и время, и записывает время в базу данных.
Я следовал этому уроку: Учебник по аналоговым часам и закончил этим:
public void onReceive(Context context, Intent intent)
{
String action = intent.getAction();
if (AppWidgetManager.ACTION_APPWIDGET_UPDATE.equals(action))
{
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
this.mIntent = new Intent(context, AskTheTime.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, mIntent, 0);
views.setOnClickPendingIntent(R.id.Widget, pendingIntent);
AppWidgetManager.getInstance(context).updateAppWidget(intent.getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS), views);
}
}
Класс AskTheTime расширяет активность и регистрирует базу данных в onCreate (). Но это означает, что он отображает только время, когда был запущен виджет, а не когда он был нажат. (Я полагаю, это потому, что я запускаю pendingIntent) Я не уверен, должен ли я помещать запись в базу данных другим методом или мне следует использовать Intents, чтобы делать подобные вещи из виджетов. Любые указатели были бы великолепны! Я рассмотрел несколько учебных пособий для целей, но ни один из них не кажется мне очень понятным.