【问题标题】:Android: android compile time verification that intent extras were passedAndroid:android编译时验证intent extras是否通过
【发布时间】:2011-05-02 20:02:49
【问题描述】:

我想知道是否有人创建过某种系统,可以检查编译时是否通过了意图附加项? 我正在传递额外内容,目的是启动另一个活动,告诉另一个活动如何表现

(例如:

Intent i = new Intent(CurrentActivity.this, OtherActivity.class);
i.putExtra("ShowOverlay", false);
startActivity(i);

)

问题是我不希望未来几代开发人员在不发送此意图的情况下启动此活动,因为没有定义的默认行为,

我假设使用某种注释可以做到这一点,但可能会很困难,因为在编译时跟踪意图对象可能是一项不可能完成的任务。 只是想知道是否有人想过这一点,以及这在理论上是否可行。

【问题讨论】:

  • “额外的意图通过了”是什么意思?你能详细说明一下吗?
  • 抱歉,添加了更多信息
  • 我要做的是有一个静态方法,所以我要求所有必需的附加方法并启动新的Activity

标签: android annotations android-intent compiler-errors


【解决方案1】:

我认为没有任何工具可以实现您想要的。即使它确实存在,你也应该防御性地编程。

如果您的活动需要一些信息来发挥作用,只需验证您是否收到了正确的信息。提供有关您的错误消息的信息并提供描述性的 javadoc。

此外,也许您希望该 Activity 响应隐含的意图,并且您仍然应该受到保护,以免发生故障。

【讨论】:

  • 隐含意图是什么意思?你能举个例子或一些文档吗?
  • 隐式意图是不声明目标类的意图。例如,如果您打开要由其他应用程序调用的活动。 developer.android.com/guide/topics/intents/…
  • 我明白了,但简短的回答仍然是像我正在寻找的解决方案是不可能的,对吧?
  • 简短的回答是检查您的输入和提供程序错误消息,如果缺少某些内容。不要依赖这样的东西。
猜你喜欢
  • 1970-01-01
  • 2011-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多