启动活动的方法一般是构建一个Intent,然后使用startActivity()或者startActivityForResult()方法,如果有数据需要传递,也可以用Intent.putExtra()等方法来完成。
假设SecondActivity中需要用到两个很重要的数据,在启动SecondActivity时必须将这两个数据传入,那么我们可以这样写:
Intent intent = new Intent(this, SecondActivity.class);
//添加携带的信息
intent.putExtra("param1",data1);
intent.putExtra("param2",data2);
//启动
startActivity(intent);
不管是从语法上还是规范上来说,这样的写法都是正确的。但是实际项目开发中,很有可能SecondActivity并不是你写的,而你的工作却需要启动SecondActivity,然而你并不知道需要启动它需要传递哪些数据。当然你可以去把SecondActivity的代码整个读一遍,也可以直接去问写SecondActivity代码的同事。
但这难免有些麻烦,我们不妨在需要某些参数才能启动的SecondActivity中这样写:
public class SecondActivity extends BaseActivity {
...
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需要的参数在actionStart()方法中全部体现出来了,不需要仔细阅读SecondActivity的代码就对需要传递的数据一目了然。同时,启动的代码也简化为:
SecondActivity.actionStart(FirstActivity.this,"data1","data2");
养成良好的习惯,成就自己,方便他人。
kee