我为我的应用创建了一个小部件,以便启动。小部件中的数据在30mins
之后得到更新。我需要将时间缩短到2mins
左右。我听说可以使用AlarmService
完成,但我不知道应该如何实现它。我正在分享我的小部件代码。
public class SampleWidget extends AppWidgetProvider {
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
// TODO Auto-generated method stub
super.onUpdate(context, appWidgetManager, appWidgetIds);
RemoteViews view;
SampleDatabase linksDatabase = new SampleDatabase(context);
linksDatabase.openDb();
List<MyMedia> myMedias = linksDatabase.getData();
String date = null;
String level = null;
for (int j = 0; j < myMedias.size(); j++) {
date = myMedias.get(j).getDateTime();
level = myMedias.get(j).getLevel();
}
linksDatabase.closeDb();
if (myMedias != null && myMedias.size() > 0) {
for (int i = 0; i < myMedias.size(); i++) {
final int n = appWidgetIds.length;
for (int j = 0; j < n; j++) {
int appWidget = appWidgetIds[j];
Intent intnt = new Intent(context, MainActivity.class);
PendingIntent pi = PendingIntent.getActivity(context, 0,
intnt, 0);
view = new RemoteViews(context.getPackageName(),
R.layout.widget_layout);
view.setOnClickPendingIntent(R.id.relLayout, pi);
view.setTextViewText(R.id.date, date);
//view.setTextViewText(R.id.time, obtainedTime);
StringBuffer sb = new StringBuffer(level);
sb.append(" ");
sb.append("units");
view.setTextViewText(R.id.value_1, sb.toString());
appWidgetManager.updateAppWidget(appWidget, view);
}
}
}
}
}
任何人都可以帮我找到实施的方法。感谢
答案 0 :(得分:0)
我得到了解决方案,你必须写一个service
来更新文本,你需要每隔2分钟调用AlarmManager
。在服务类中,您将通过创建数据库对象并获取更新窗口小部件中文本的详细信息来访问数据。