Java 在小部件中每天显示谚语-Android
我制作了一个小部件,它应该每天显示一条随机的谚语。到目前为止,一切正常,除了谚语没有改变,Java 在小部件中每天显示谚语-Android,java,android,widget,Java,Android,Widget,我制作了一个小部件,它应该每天显示一条随机的谚语。到目前为止,一切正常,除了谚语没有改变,出于测试目的,我将计时器设置为3秒 这是我的密码: JAVA public class ProverbsWidget extends AppWidgetProvider { public static int TIME_OUT = 3000; //1000 = 1 sec public static String fnl_hv = RandomizedProverb(); //this is the me
出于测试目的,我将计时器设置为3秒
这是我的密码:
JAVA
public class ProverbsWidget extends AppWidgetProvider {
public static int TIME_OUT = 3000; //1000 = 1 sec
public static String fnl_hv = RandomizedProverb(); //this is the method that generates the randem proverb and it's working fine
static void updateAppWidget(final Context context, final AppWidgetManager appWidgetManager,
final int appWidgetId) {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// This method will be executed once the timer is over
String widgetText = fnl_hv;
// Construct the RemoteViews object
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.proverbs_widget);
views.setTextViewText(R.id.sayings, widgetText);
// Instruct the widget manager to update the widget
appWidgetManager.updateAppWidget(appWidgetId, views);
}
},TIME_OUT);
}
RandomizeProverb()
:
很明显,问题出在我的计时器内,但我似乎无法让它工作这样做:
Handler handler = new Handler();
Runnable runnable = new Runnable() {
@Override
public void run() {
// This method will be executed once the timer is over
String widgetText = fnl_hv;
// Construct the RemoteViews object
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.proverbs_widget);
views.setTextViewText(R.id.sayings, widgetText);
// Instruct the widget manager to update the widget
appWidgetManager.updateAppWidget(appWidgetId, views);
handler.postDelayed(runnable, timetoswitch);
}
},InitialDelayTime;
希望对你有帮助 通过访问XML文件并将
updatePeriodMillis
的值设置为86400000
来解决此问题,如下所示:
android:updatePeriodMillis="86400000"
基本上,这会告诉小部件何时更新自身,当时间到了时,将执行方法
updateAppWidget()
,因为86400000是24小时内存在的毫秒数,小部件将每天更新,这是因为您只在类创建时获得随机字符串。永远不要在你的跑步中改变它。所以,它永远保持原来的状态。@ModularSynth你能提出一个解决方案吗?很明显,复制这个fnl_hv=randomizedSaddlage()
进入run()
方法。@ModularSynth不幸的是,它不起作用,然后randomizedSaddle()
出现一些问题。
android:updatePeriodMillis="86400000"