概述

当我们跟随时间的脚步向前挪动的时候,总能发现原来以前的自己做了一些愚蠢的事情。但,不见得以前就是不好的事情。我在以前的博客中写过两种关于Android中如何退出应用程序的方法。近日,我又发现了一个看似高大上的方法,因为作为程序员的你,使用起来会更加方便。它就像是你得心应手的工具,在需要的时候让你有一种,还好有它的感觉。下面我就使用Android事件总线来对Android退出程序作一个说明。

AndroidEventBus简介

AndroidEventBus是一个Android平台的事件总线框架,它简化了Activity、Fragment、Service等组件之间的交互,很大程度上降低了它们之间的耦合,使我们的代码更加简洁,耦合性更低,提升了我们的代码质量。但它能做的却不仅限于这些。

使用说明

需求的jar包:

android-support-v4.jar

simple_eventbus.jar

注:以上两个jar包在下面的工程源码下载连接中有包含,大家可以直接前往下载。(PS:当你真的开始使用他们时,你会发现他们是如此的好)

关键代码

BaseActivity.java

public class BaseActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);EventBus.getDefault().register(BaseActivity.this);}@Overrideprotected void onDestroy() {super.onDestroy();EventBus.getDefault().unregister(BaseActivity.this);}@Subcriber(tag = "exit_app")private void finishApp(String msg) {finish();}
}

StartActivity.java

public class StartActivity extends BaseActivity {private int getLayoutResID() {return R.layout.activity_main;}private Button mGoNextButton = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(getLayoutResID());initEvent();}private void initEvent() {initViews();setViews();}private void initViews() {mGoNextButton = (Button) findViewById(R.id.activity_main_go_sample_actviity_a_button);}private void setViews() {mGoNextButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {startActivity(new Intent(StartActivity.this, SampleAActivity.class));}});}
}

ExitActivity.java

public class ExitActivity extends BaseActivity {private int getLayoutResID() {return R.layout.activity_exit;}private Button mGoNextButton = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(getLayoutResID());initEvent();}private void initEvent() {initViews();setViews();}private void initViews() {mGoNextButton = (Button) findViewById(R.id.activity_exit_finish_button);}private void setViews() {mGoNextButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {exitApp();}});}public void exitApp(){EventBus.getDefault().post("", "exit_app");}
}

工程源码

http://download.csdn.net/detail/u013761665/8624649

参考连接

Android事件总线还能怎么玩?

相关博文

Android退出程序(一)——单例模式

Android退出程序(二)——利用广播机制

Android退出程序(三)——Android事件总线相关推荐

  1. 《android进阶之光》——事件总线(上)

    今日阅读:<android进阶之光>的事件总线部分,整理如下 事件总线知识点: 1.EventBus:就是事件,可以是任意对象 2.Subscriber:事件的订阅者 3.Publishe ...

  2. 《Android进阶之光》--事件总线

    No1: EventBus三要素: 1)Event:事件 2)Subscriber:事件订阅者 3)Publisher:事件发布者 No2: EventBus的4种ThreadMode(线程模型): ...

  3. 《android进阶之光》——事件总线(下)

    今天看了这本书关于事件总线的剩余部分,主要讲的是otto. otto与EventBus用法差不多,不同的地方是: 1.otto不是单例模式的,每次使用都要创建一个实例,建议使用的时候用单例模式包起来 ...

  4. 第三章: 事件总线:Vert.x 应用程序的支柱

    本章涵盖了 事件总线是什么 如何通过事件总线进行点对点.请求-回复 和 发布/订阅 通信 用于通过网络进行verticle到verticle通信的分布式事件总线 上一章介绍了verticles. 一个 ...

  5. Android自定义事件总线,手写Android事件总线框架Eventbus(简易版)

    开篇废话 近期利用业余时间,跟着大神把Eventbus的框架学习了一下,在这里,记录一下这次学习的心得. EventBus是针一款对Android的发布/订阅事件总线.它可以让我们很轻松的实现在And ...

  6. Android事件总线 ( AndroidEventBus ) 开源库发布

    AndroidEventBus 如果你不知道事件总线是什么,那么没有关系,下面我们先来看这么一个场景: 你是否在开发的过程中遇到过想在Activity-B中回调Activity-A中的某个函数,但Ac ...

  7. Android事件总线 ( AndroidEventBus ) 框架学习

    来自:http://blog.csdn.net/bboyfeiyu/article/details/43450553  AndroidEventBus 如果你不知道事件总线是什么,那么没有关系,下面我 ...

  8. android eventbus使用,Android EventBus使用详解(一)

    前言 EventBus是一种用于Android的发布/订阅事件总线.它有很多优点:简化应用组件间的通信:解耦事件的发送者和接收者:避免复杂和容易出错的依赖和生命周期的问题:很快,专门为高性能优化过等等 ...

  9. android 自定义课程表,Android课程表界面布局实现代码

    前言 Android课程表布局实现 我是个菜鸟,文章供参考 示例 图1: 图2: 布局分析 该界面主要可分为三部分: 1.显示年份及周数部分 2.显示周一到周日 3.课程显示部分 实现步骤 1.首先整 ...

  10. 风险洞察之事件总线的探索与演进

    作者:京东科技 刘红申 一.事件总线介绍 事件总线,或称其为数据管道,作为整个风险洞察数据流转的重要一环,它承担着风险实时数据统一标准化的重要职责. 在面对复杂多样的上游数据,事件总线可以将复杂数据进 ...

最新文章

  1. 2021中大厂php+go面试题(1)
  2. php 工商银行公众号支付代码_微信支付PHP SDK —— 公众号支付代码详解
  3. 配置管理小报100629:我是项目组成员,事情比较急,按流程需要项目经理批准,但项目经理不在怎么办?...
  4. 访问数,每次访问页数,平均停留时间,跳出率
  5. java执行linux脚本 并返回其执行结果
  6. Practical Tactics for Social Intercourse One
  7. (转载)Http Module 介绍
  8. ORACLE数据类型与java数据类型对应
  9. 数据库基础(2):简单查询和连接查询
  10. drop sqlite 多个表_android sqlite 一次创建多个表
  11. 使用AIDL挂断电话
  12. 3┃音视频直播系统之浏览器中通过 WebRTC 直播视频实时录制回放下载
  13. wps中的word删除空白页
  14. win7计算机的ip地址设置,如何将win7ip地址设置成自动获取
  15. oracle 播布客 视频,播布客视频-Managing Indexes笔记
  16. 桌面运维常见问题解决办法②
  17. Efficient Methods for Natural Language Processing: A Survey自然语言处理有效方法综述
  18. 使用ALLMAPS进行辅助组装得到准染色体水平基因组
  19. 税后收入计算与四险一金
  20. 全方位梳理:为什么移动端UI设计会成为主流?

热门文章

  1. 国密算法SM3(杂凑算法)
  2. 正则表达式,解决要么有要有没有,但必须开头
  3. (61)分析 KiFindReadyThread 函数 —— 线程优先级
  4. MoeCTF 2021Re部分------Algorithm_revenge
  5. 【安全技术】关于几种dll注入方式的学习
  6. 27、HTML框架(同一个浏览器窗口中显示不止一个页面)
  7. 25、HTML 文本格式化
  8. 1.5 Double类
  9. 使用元数据分析数据库
  10. 计算两个日期相差的小时差