1
public class WidgetConfigure extends Activity {

private int widgetID;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.widget_configure);
    widgetID = this.getIntent().getExtras().getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
    setResult(RESULT_CANCELED, new Intent().putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetID));
}

}

我认为知道您的小部件配置活动得到错误的小部件 ID 是没有用的。我是否应该通知用户:“嘿,有点问题,请重试。” 那太蹩脚了,这不应该发生,甚至有可能发生,接收错误的小部件ID?如果有人知道有意义的用途,AppWidgetManager.INVALID_APPWIDGET_ID请告诉我:)。

4

1 回答 1

0

AppWidgetManager.INVALID_APPWIDGET_ID用于确定您是否成功检索了小部件的 id。

举个例子:

widgetId = this.getIntent().getExtras().getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);

if(widgetId == AppWidgetManager.EXTRA_APPWIDGET_ID){
// something went wrong
}
else{
// proceed...
}

您必须将两个参数传入getInt(). 如果检索AppWidget失败的 Id,getInt()则将返回第二个参数(默认值)。并且由于AppWidgetManager.INVALID_APPWIDGET_ID永远不可能是 an 的实际 ID,AppWidget因此可以安全地检查它,如上所示。(顺便说一句,您也可以将其与 0 进行比较,因为 0的值为AppWidgetManager.INVALID_APPWIDGET_ID0。)

于 2013-06-22T22:56:11.597 回答