gpt4 book ai didi

android - 按下主页按钮不会从配置 Activity 中返回小部件 ID

转载 作者:太空狗 更新时间:2023-10-29 14:20:42 25 4
gpt4 key购买 nike

错误:appWidgetId (EXTRA_APPWIDGET_ID) 未从\widget 配置 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 行为。 (也许是一个错误?)


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

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

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


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


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

The normal experience for an app widget that is going to provide a configuration UI is that pressing back or home from that will cancel the addition.

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

关于android - 按下主页按钮不会从配置 Activity 中返回小部件 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17202878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com