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

系列文章:
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");
  }
});

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 158,342评论 24 688
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 121,802评论 17 134
  • Intent 是一个消息传递对象,您可以使用它从其他应用组件请求操作。尽管 Intent 可以通过多种方式促进组件...
    牧童遥指2000阅读 3,752评论 0 12
  • 春天撑着花伞 假装倒在你的怀里 石榴花从裙子上跑出来 挂在季节的风铃上 轻轻一碰 无数个夏天大把大把的落下 云彩奔...
    影儿影儿阅读 255评论 0 2
  • 卓飞觉得,自己一定是这两年来江湖上最倒霉的人。去年,因为他之前犯下的一个错误,导致名满天下的洛阳“东来阁”大厦将倾...
    醉死人阅读 324评论 0 3