初学者模式

这种模式是一种更严格的方法来启动 Activity。其目的是提高代码可读性,同时降低代码复杂性,维护成本和组件耦合。

以下示例实现了启动器模式,通常在 Activity 本身上实现为静态方法。这个静态方法接受所有必需的参数,从该数据构造一个有效的 Intent,然后启动 Activity

Intent 是一个对象,它提供不同组件之间的运行时绑定,例如两个活动。意图代表一个应用程序意图做某事。你可以将意图用于各种任务,但在这里,你的意图开始另一项活动。

public class ExampleActivity extends AppCompatActivity {

    private static final String EXTRA_DATA = "EXTRA_DATA";

    public static void start(Context context, String data) {
        Intent intent = new Intent(context, ExampleActivity.class);
        intent.putExtra(EXTRA_DATA, data);
        context.startActivity(intent);
    }       

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Intent intent = getIntent();
        if(!intent.getExtras().containsKey(EXTRA_DATA)){
            throw new UnsupportedOperationException("Activity should be started using the static start method");
        }
        String data = intent.getStringExtra(EXTRA_DATA);
    }
}

此模式还允许你强制使用 intent 传递其他数据。

然后可以像这样启动 ExampleActivity,其中 context 是一个活动上下文:

ExampleActivity.start(context, "Some data!");