【Android】对“启动活动的最佳写法”的疑惑和整理

在郭霖老师的《第一行代码2》的2.6.3 启动活动的最佳写法 中,有一些部分看得有些疑惑,经过整理思路如下:
书中描述:
在这里插入图片描述
假设SecondActivity需要两个很重要的字符串,你在FirstActivity里面使用以下方法跳进去

Intent intent=new Intent(FirstActivity.this,SecondActivity);
intent.putExtra(“param1”,”data1”);
intent.putExtra(“param2”,”data2”);
startActivity(intent);

这样写,可能会遇到对接的问题,比如SecondActivity不是你开发的,里面有一万行代码,你负责的部分需要启动SecondActivity这个功能,但是你不清楚启动SecondActivity需要哪些数据,比如需要10个数据(你不知道,也没问人没看代码),而你只传递了两个,就会导致异常(要启动SecondActivity,你必须知道SecondActivity的getIntent()
方法后面需要多少数据,少一个都会导致程序崩溃)
,郭霖老师说,使用下面的方法,就能不看代码,不问人,来避免出现这种异常

把别人写的SecondActivity打开,在前面加上一个函数,这个函数的内容如下

public static void actionStart(Context context,String data1,String data2){
	Intent intent= new Intent(context,SecondActivity.class);
	intent.putExtra(“param1”,data1);
	intent.putExtra(“param2”.data2);
	context.startActivity(intent);
}

书中描述:
在这里插入图片描述在这里插入图片描述
这样加一个函数,SecondActivity中的10个数据就可以通过actionStart()中传递的2个字符串全部拿过来了???
然后在FirstActivity中使用一句话

SecondActivity.actionStart(FirstActivity.this,”data1”,”data2”);

就可以启动第二个应用,并且传递10个数据了
自己编写每个活动的添加这个方法没问题,但是现有的语境下还是没解决“SecondActivity是别人写的,而自己在不需要询问的情况下清晰的知道SecondActivity需要传递哪些数据”的问题。

这样理解肯定是有问题的,如果我们不断章取义,从郭老师最后的那句“可以节省不少同事过来询问你的时间”,那么我们可以换个角度重新描述一遍。
假设SecondActivity是你开发的,但是新来的同事不知道这个活动需要传递哪些数据才能调用它,如果传递数据不对有可能会崩溃,所以你需要专门在SecondActivity写一个actionStart方法,把它置顶,你要告诉新来的同事,这个活动需要传输的数据有哪些,让他按照这个函数来写FirstActivity需要传递的数据,在FirstActivity中使用

SecondActivity.actionStart(FirstActivity.this,”data1”,”data2”,……,”data10”);

来启动SecondActivity,并传递10个数据,每个活动都这么写,并且让大家都规范这么写,就可以使传递数据看起来更集中了,避免程序崩溃的可能性。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值