初學者模式
這種模式是一種更嚴格的方法來啟動 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!");