Android开发之启动Activity小技巧

简介

先看代码

public static void openActivity(Context context) {
         Intent intent=new Intent(context,SecondActivity.class);
         context.startActivity(intent);
}

这个静态方法openActivity()写在SecondActivity里面。
第一个Activity 通过第二个Activity 的静态方法openActivity()去打开第二个Activity 。
SecondActivity.openActivity(this);

现在很多人这样写代码了,其实翻看Android 源码的例子就能看到里面也有很多类似的。那么为什么这么写呢。这么写有什么好处呢。如果没有好处大家都不会这么干了。

其实如果只看上面的代码,我可以很负责的告诉你可能真的没啥好处,你可以直接在BaseActivity里面封装openActivity()方法,然后传入想跳转的页面就OK了。我的项目的Base里面都会封装这个方法。

那么为什么这么写呢,这样写最大的好处一般是传参数的时候用最方便,比如我们一般从列表页面跳转到详情页面的时候会传递一个详情页的id 然后通过id获取网络请求。
那么我们代码就应该这样写

private static final String DETAIL_ID = "detail_id";
public static void openActivity(Context context,String detail_id) {
         Intent intent=new Intent(context,SecondActivity.class);
         intent.putExtra(DETAIL_ID , detail_id); 
         context.startActivity(intent);
}

这样写跟直接写在调用的第一个Activity 是不同的。
第一个不同就是耦合度降低了,第一个Activity 不需要关心传入的字段是什么,只需要调用方法把内容传过去就好了。

第二个好处就是复用
这个代码可以给无数个Activity 调用,而不是只给一个调用,如果有2个地方需要来这个Activity 那么每个Activity 的代码变的更加简洁

//每个Activity 调用的地方是这样的
 SecondActivity.openActivity(this,detail_id);
//而不是
Intent intent=new Intent(context,SecondActivity.class);
         intent.putExtra(DETAIL_ID , detail_id); 
         context.startActivity(intent);
// 看到了,复用的时候是不是更加简洁

这还不够。还有更神奇的地方。
就是如果这个 Activity 因为需求变动需要重新传人一个值,现在变成两个值的时候,我只要在这个方法后面加一个参数就可以,而且如果我之前有调用的地方,就会编译错误。这样就可以很方便的更改避免bug。如果是过去的方式,可能有3个调用的地方,而我只改了两个。那么就会出现出现一个参数异常。不过如果细心一定可能也不会出错,只是这样写,可以避免3个地方参数不一样而在编译期通过的问题。避免部分bug。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Activity的启动模式 在实际项目中需要根据特定的需求为每一个Activity指定恰当的启动模式。 启动模式一...
    寒桥阅读 1,189评论 0 0
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 180,250评论 25 708
  • 《林肯传》 本书是卡内基写的唯一一本人物自传。林肯从自小丧母、穷困潦倒的伐木工儿子,借阅读和演讲的力量,由律师到美...
    奔跑的文曲星阅读 268评论 0 0
  • 流了第一点眼泪,真的受够了, 求求你放过我
    zgf1204阅读 180评论 0 0
  • 这个点了写10月28号的亲子日子似乎晚了点。但为了坚持每天一篇。索性就这个点写吧! 今天是礼拜六。也是家...
    琳暄阅读 254评论 1 0

友情链接更多精彩内容