如何防止我的小部件在第一次运行时更新?

时间:2013-09-18 08:41:08

标签: java android android-widget

我正在尝试创建一个简单的小部件,并扩展了AppWidgetProvider并覆盖了onUpdate方法。

当我将小部件放在主屏幕上时,它会打开我在XML中定义的相关设置活动。这似乎是合乎逻辑且合理的行为,但我可以看到它也调用了onUpdate方法。由于我尚未配置我的窗口小部件,因此onUpdate方法中的代码失败。

小部件在主屏幕上放置小部件时调用onUpdate方法是否正常? ...或者我做错了什么,只应在设置活动退出后调用?

我可以检查我的onUpdate方法是否在配置完成之前未调用小部件,即设置活动已完成?

1 个答案:

答案 0 :(得分:1)

当窗口小部件放置在主屏幕上时,窗口小部件调用onUpdate方法是正常的行为。但是要解决您的问题,您可以在if块中添加完整的onUpdate代码块,只有在配置完成后才会执行。 要执行此操作,您可以使用staic布尔标志,如果已完成设置,则True将为false

你必须做这样的事情

public class ConfigActivity extends Activity {

Static Boolean flag=false;
App_setting()
 {
flag=true;
//rest of configuration code
}
}

和你的onUpdate一样

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
        int[] appWidgetIds) {
if(ConfigActivity.flag==true){
//block of code
}