【问题标题】:Pressing HOME button does not return widget ID from configuration activity按 HOME 按钮不会从配置活动返回小部件 ID
【发布时间】:2014-02-18 22:29:33
【问题描述】:

Error: appWidgetId (EXTRA_APPWIDGET_ID) was not returned from the \widget configuration activity.

public class WidgetConfigure extends Activity {

private int widgetID;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.v("Lifecycle", "WidgetConfigure.onCreate");
    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));
}

public void onButtonClicked(View view) {
    Log.v("Lifecycle", "WidgetConfigure.onButtonClicked");
    if (((RadioButton) this.findViewById(RefreshStrategy.SYSTEM)).isChecked()) {
        WidgetProvider.configure(widgetID, true);
    } else if (((RadioButton) this.findViewById(RefreshStrategy.USER)).isChecked()) {
        WidgetProvider.configure(widgetID, false);
    }
    setResult(RESULT_OK, new Intent().putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetID));
    finish();
}
}

理论上RESULT_OK应该在activity中按下按钮后发送,RESULT_CANCELED在任何其他情况下发送,但是当设备上的物理按钮HOME被按下时不会发生。

任何想法如何解决这个问题?

【问题讨论】:

    标签: android widget


    【解决方案1】:

    这不是您的代码中的问题 - 这是正常的标准 Android 行为。 (也许是一个错误?)


    我找不到它的文档,但是如果您尝试添加需要配置的 Google 小部件,然后按 HOME,您会看到没有添加小部件。在某种程度上,我们可以将 HOME 键视为一个 CANCEL 按钮。

    我今天大部分时间都在想我自己的代码中存在错误,并寻找修复它的方法。

    如果有的话,我相信这可能是框架中的一个错误,因为根本没有交付结果。此外,如果我从配置活动中启动一个新的Activity 然后从那里退出,我会遇到类似的失败。


    FWIW 我在 Galaxy Nexus 4.2.1 上收到该错误消息;但在 Nexus 7 4.4.2 上未显示错误,但行为相同。


    更新:根据 Dianne Hackborn 的说法,这是预期的行为,至少从用户的角度来看:

    应用小部件的正常体验将提供 配置 UI 是按返回或主页将取消 加法。

    因此,作为开发人员,这可能看起来很奇怪,但作为用户,最终一切都很好。

    【讨论】:

    • 作为用户,效果并不好。很多用户在小部件配置后按下主页按钮,想知道为什么没有添加小部件!我收到了百分之一的此类查询。
    • @3c71 我个人同意,但我有什么资格反对 hackbod 的智慧。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-24
    • 1970-01-01
    相关资源
    最近更新 更多