为什么在Android中使用静态意图方法

时间:2016-09-27 20:24:55

标签: android performance android-intent

我正在学习android编程的大书呆子牧场指南,其中作者编写了静态意图方法,用于在活动之间传递数据,虽然我知道代码是如何工作的,但完全不了解它背后的逻辑和原因。

public static Intent newIntent(Context packageContext, boolean answerIsTrue){
    Intent i = new Intent(packageContext,CheatActivity.class);
    i.putExtra(EXTRA_ANSWER_IS_TRUE,answerIsTrue);
    return i;
}

3 个答案:

答案 0 :(得分:3)

我假设你的意思是他写的功能如下:

  public static Intent createIntent(param1, param2) {
    Intent intent = new Intent();
    intent.putExtra(param1);
    intent.putExtra(param2);
    return intent;
  }

这样做的原因是显示一个Activity需要工作的参数,并且可以调用一个函数来为该活动创建一个Intent,而不是必须在你启动它的十几个地方复制那个逻辑。应用程序中的活动。

答案 1 :(得分:0)

从书本身:

这个静态方法允许我们创建一个正确配置的Intent,其中包含CheatActivity所需的额外内容。使用EXTRA_ANSWER_IS_TRUE常量将answerIsTrue参数(布尔值)放入具有私有名称的intent中。您将暂时提取此值。对您的活动子类使用这样的newIntent(...)方法将使其他代码可以轻松地正确配置其启动意图。

答案 2 :(得分:0)

我更喜欢Android工作室在输入“starter”时生成的静态方法

public static void start(Context context) {
    Intent starter = new Intent(context, SomeActivity.class);
    starter.putExtra(EXTRA_SOME_EXTRA, "some_extra_String");
    context.startActivity(starter);
}

然后您可以展开以准确指定哪些参数应该成为额外内容或哪些请求代码。

public static void startForResult(Activity activity, String name, int requestCode) {
    Intent starter = new Intent(activity, SomeActivity.class);
    starter.putExtra(EXTRA_SOME_EXTRA, name);
    activity.startActivityForResult(starter, requestCode);
}