【问题标题】:Setting RESULT_CANCELED in widget configuration activity redundant?在小部件配置活动中设置 RESULT_CANCELED 是多余的吗?
【发布时间】:2018-03-13 22:12:43
【问题描述】:

我想知道以下内容。 在 Android 文档中,他们推荐以下内容:

"提示:当您的配置Activity第一次打开时,将Activity结果设置为RESULT_CANCELED,以及EXTRA_APPWIDGET_ID,如上面的步骤5所示。这样,如果用户在到达结束之前退出Activity,App通知 Widget 宿主取消配置,不会添加 App Widget。"

https://developer.android.com/guide/topics/appwidgets/index.html#Configuring

但这不是多余的吗,因为默认值为 RESULT_CANCELED (0) 反正?我错过了什么吗?会不会出现我们打开配置Activity时结果不为0的情况?

【问题讨论】:

  • 没有那么多需要设置结果码。重要的是结果Intent。它需要附加 Widget ID,或bad things can happen
  • 哦,当然,我怎么能错过。完全有道理!您也可以将此添加为答案。

标签: android android-activity widget


【解决方案1】:

该声明的重要部分是“与 EXTRA_APPWIDGET_ID 一起”。您是正确的,默认情况下结果代码将为RESULT_CANCELED,但默认情况下不会出现带有小部件 ID 的结果Intent

当然,如果未设置 Intent,任何允许小部件的启动器都应该能够正常处理它,但这是一个已知问题,至少 some do not

【讨论】:

  • 谢谢。现在我检查应用程序小部件 ID 并完成活动,如果它应该是“INVALID_APPWIDGET_ID”。所以我应该在这部分之前设置我的结果值吗?或者如果它不包含有效的 ID,结果会不会有任何好处?
  • 我不确定我是否明白你在问什么。您应该将RESULT_CANCELED 代码及其Intent 设置为onCreate() 中的传入小部件ID,因此如果用户退出,它已经设置好了。
  • 哦,是的,请始终使用您传递给您的 ID。
  • 我的意思是,如果我从 getIntent 得到的 appWidgetId 无效怎么办?如果我在结果意图中传递它,启动器还会阻塞吗?
  • 它真的不应该,如果它把它传给了你。不过,我认为它永远不会,除非最后出现了可怕的错误。
猜你喜欢
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多