我有一个显示模拟时钟的小部件。我希望小部件在用户单击小部件时写入数据库。我已经有了 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 从小部件中执行此类操作。任何指针都会很棒!我看过几个教程的意图,但对我来说似乎都不是很清楚。