初学者模式
这种模式是一种更严格的方法来启动 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!");