当我将小部件添加到主屏幕时,如何屏蔽onUpdate()方法?

时间:2012-11-13 12:15:56

标签: android

当我将小部件添加到主屏幕时,如何屏蔽onUpdate()方法?

我有一个侦听用户点击的小部件......我在onUpdate()中回复它。 问题是,即使我将小部件添加到主屏幕,onUpdate()也会被执行。

  @Override
  public void onUpdate(Context context, AppWidgetManager appWidgetManager,
      int[] appWidgetIds) {

          if(flag)
                {
                Toast.makeText(context, "OFF", Toast.LENGTH_SHORT).show();
flag=false;
                }
          else
                {
                Toast.makeText(context, "ON", Toast.LENGTH_SHORT).show();
flag=true;
                }
}

或者,如果没有onUpdate()方法,我该如何回应用户点击?

1 个答案:

答案 0 :(得分:0)

  

问题是,即使我将小部件添加到主屏幕,onUpdate()也会被执行。

这不是“问题”。当用户将您的应用小部件添加到主屏幕时,需要调用onUpdate(),以便您可以定义应用小部件的外观。

  

或者,如果没有onUpdate()方法,我该如何回应用户点击?

欢迎您在应用小部件中使用您希望的任何PendingIntent按钮等。 PendingIntent无需返回您的onUpdate()方法。

另外,我注意到上面的代码片段假定有一个名为flag的数据成员(或可能是静态数据成员)。请记住,您的流程不会始终在应用小部件更新之间存在。因此,任何类型的“标志”都需要存储在持久性的地方:数据库,SharedPreferences或其他形式的文件。