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
的有意义使用,请告诉我:)。
答案 0 :(得分: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
永远不会是AppWidget
的实际ID,因此如上所示,检查它是安全的。 (顺便说一句,你也可以将它与0进行比较,因为the value of AppWidgetManager.INVALID_APPWIDGET_ID
is 0。)