從Activity跳轉說起

從Activity跳轉說起

Activity之間的跳轉,我們一般這樣寫

startActivity(new Intent(MainActivity.this, SecondActivity.class));

如果需要附帶參數的話

Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("extra", "Hello World");
startActivity(intent);

我們能不能簡化一些呢?比如,像這樣

PIntent.from(MainActivity.this).to(SecondActivity.class);

附帶參數

PIntent.from(MainActivity.this)
        .with("extra", "Hello World")
        .to(SecondActivity.class);

這樣是不是更加的通俗易懂,更容易理解Intent的作用呢?

我們再聊點其他的事情。
當我打算跳轉BActivity的時候,BActivity需要什麼參數,我們是不知道。難道我們要打開BActivity查看需要什麼參數嗎?這樣太不友好了。我們可以像這樣在BActivity中提供一個static方法,用於打開本身。

public static void open(Context context, String id) {
    PIntent.from(context)
            .with("id", id)
            .to(BActivity.class);
}

我們在需要打開BActivity的時候就可以直接這樣調用

BActivity.open(MainActivity.this, id)

這樣降低了對接的認知難度。
這種也許不是最優解決方案,只是一個規範,約定大於配置。

Demo 傳送門

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章