需要额外传递给活动

时间:2017-04-19 19:21:04

标签: android android-intent android-bundle

我正在创建一个活动,我希望在intent bundle中需要特定的额外内容。

我想知道最佳做法是什么。如果捆绑包不包含特定额外费用,则计划不会启动或立即完成活动。我还想通过错误通知来电者。

1 个答案:

答案 0 :(得分:2)

  

如果捆绑包不包含特定的附加内容,则计划不会启动或立即完成活动。

onCreate()中验证额外内容,如果附加内容丢失/无效,请致电finish()

  

我还想通知错误,告诉来电者。

您可以将某些内容记录到LogCat。但是,您无法向调用startActivity()

的代码抛出异常

您可以考虑在以下活动中创建某种形式的static辅助方法:

  • 只需按照您想要的方式组装Intent,或

  • 如果给出合适的startActivity()

  • 也会继续拨打Context

并鼓励您的开发团队使用该方法(用高尔夫球杆贿赂他们,用高尔夫球杆威胁他们等)。例如,在MyActivity上,有:

public static void start(Context ctxt, YourEnum value) {
  Intent i=new Intent(ctxt, MyActivity.this).putExtra(EXTRA_THINGY, value);

  ctxt.startActivity(i);
}

您的团队成员可以致电MyActivity.start(this, MyEnum.AWESOME);开始您的活动。但是,您不能强制他们以编程方式执行此操作(例如,如果他们自己创建Intent,则无法强制编译错误。)

请注意,高尔夫球杆是一个例子,而不是最佳做法 - 例如,根据您的烘焙技巧,您可以用饼干贿赂/威胁他们