Android中启动Activity活动的另一种写法|SquirrelNote

96
跳动的松鼠
2017.11.28 10:28* 字数 294

系列文章:
Activity的4种启动模式及使用场合|SquirrelNote
Android中Activity之间的数据传递|SquirrelNote
Android中启动Activity活动的另一种写法|SquirrelNote
基类Activity|SquirrelNote

平时我们启动另一个Activity,并传递数据,如下代码:

Intent intent=new Intent(AActivity.this,BActivity.class);
intent.putExtra("param1","data1");
intent.putExtra("param2","data2");
startActivity(intent);

但是在项目开发中,会有对接问题的出现。比如BActivity并不是由你开发的,但你负责的部分需要有启动BActivity这个功能,而你却不知道启动这个活动需要传递哪些数据。
如下代码解决:

public class BActivity extends BaseActivity{
  public static void actionStart(Context context,String data1,String data2){
    Intent intent=new Intent(AActivity.this,BActivity.class);
    intent.putExtra("param1",data`);
    intent.putExtra("param2",data2);
    context.startActivity(intent);
  }
}

在BActivity中添加actionStart()方法,BActivity 中需要的数据都是通过actionStart()方法的参数传递过来的,然后把它存储到Intent中,最后调用startActivity()方法启动BActivity。
好处是可以非常清晰地知道启动BActivity需要传递哪些数据。
只需要一行代码就可以启动BActivity ,在AActivity中:

btn.setOnClickListener(new OnClickListener(){
  @Override
  public void onClick(View v){
    SecondActivity.actionStart(AActivity.this,"data1","data2");
  }
});

以上是根据我的一些理解,做的总结分享,旨在抛砖引玉,希望有更多的志同道合的朋友一起讨论学习,共同进步!

四大组件之Activity
Web note ad 1