从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 传送门

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