0

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

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

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

有没有办法检查我的onUpdate方法在配置完成之前没有调用小部件,即设置活动已经完成?

4

1 回答 1

1

将小部件放在主屏幕上时,小部件调用 onUpdate 方法是正常行为。但是要解决您的问题,您可以在 if 块中添加完整的 onUpdate 代码块,该块只有在配置完成后才会执行。为此,您可以使用一个 staic 布尔标志True如果设置已完成 else 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
}
于 2013-09-18T11:04:23.450 回答