初學者模式

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