1. //知晓当前是在哪一个活动
  2. /* 新建一个BaseActivity类(Java class), 继承自AppCompatActivity
  3. * 重写 onCreate()方法,已有的活动无需再继承自AppCompatActivity, 而是继承自BaseActivity,当跳转到某个活动界面,Toast消息框就会显示该活动名称
  4. */
  5. package com.example.activitytest;
  6.  
  7. import android.app.Activity;
  8. import android.os.Bundle;
  9. import android.support.annotation.Nullable;
  10. import android.support.v7.app.AppCompatActivity;
  11. import android.util.Log;
  12. import android.widget.Toast;
  13.  
  14. /**
  15. * Created by admin on 2017/1/22.
  16. */
  17.  
  18. public class BaseActivity extends AppCompatActivity {
  19. @Override
  20. protected void onCreate(@Nullable Bundle savedInstanceState) {
  21. super.onCreate(savedInstanceState);
  22.  
  23. //采用Toast消息提示的方式, 显示当前是哪个活动名
  24. Toast.makeText(BaseActivity.this, getClass().getSimpleName(), Toast.LENGTH_SHORT).show();
  25. }
  1. /* 随时随地退出程序
  2. * 实现ActivityCollector类作为活动管理器
  3. */
  4. package com.example.activitytest;
  5.  
  6. import android.app.Activity;
  7.  
  8. import java.util.ArrayList;
  9. import java.util.List;
  10.  
  11. /**
  12. * Created by admin on 2017/1/22.
  13. */
  14.  
  15. public class ActivityCollector {
  16. /*
  17. 通过一个List来暂存活动
  18. */
  19. public static List<Activity> activities = new ArrayList<>();
  20. //提供一个addActivity()方法用于从List中移除活动.
  21. public static void addActivity(Activity activity) {
  22. activities.add(activity);
  23. }
  24. public static void removeActivity(Activity activity) {
  25. activities.remove(activity);
  26. }
  27.  
  28. //最后提供了一个finishAll()方法用于将List中存储的活动全部销毁掉
  29. //不管在什么地方想退出程序,只需要调用ActivityCollector.finishAll(),就可以了
  30. public static void finishAll() {
  31. for (Activity activity : activities) {
  32. if (!activity.isFinishing()) {
  33. activity.finish();
  34. }
  35. }
  36. }
  37. }
  38.  
  39. //在BaseActivity类再修改一下代码
  40. package com.example.activitytest;
  41.  
  42. import android.app.Activity;
  43. import android.os.Bundle;
  44. import android.support.annotation.Nullable;
  45. import android.support.v7.app.AppCompatActivity;
  46. import android.util.Log;
  47. import android.widget.Toast;
  48.  
  49. /**
  50. * Created by admin on 2017/1/22.
  51. */
  52.  
  53. public class BaseActivity extends AppCompatActivity {
  54.  
  55. @Override
  56. protected void onCreate(@Nullable Bundle savedInstanceState) {
  57. super.onCreate(savedInstanceState);
  58. //表明将 当前创建 的活动添加到活动管理器中.
  59. ActivityCollector.addActivity(this);
  60. Toast.makeText(BaseActivity.this, getClass().getSimpleName(), Toast.LENGTH_SHORT).show();
  61. }
  62. @Override
  63. protected void onDestroy() {
  64. super.onDestroy();
  65. ActivityCollector.removeActivity(this);
  66. }
  67. }
  1. /* 启动活动的最佳写法
  2. * 会遇到问题: 在自己负责的部分需要启动SecondActivity这个活动的功能,
  3. * 却不清楚这个活动需要传递那些数据(项目中接手别人的代码)
  4. * 修改SecondActivity中的代码
  5. */
  6. public static void actionStart(Context context, String data1, String data2) {
  7. Intent intent = new Intent(context, SecondActivity.class);
  8. intent.putExtra("param1", data1);
  9. intent.putExtra("param2", data2);
  10. context.startActivity(intent);
  11. }
  12.  
  13. /* 这样,即使不用阅读SecondActivity中代码,不去询问负责SecondActivity编
  14. *写的同事, 也可以非常清晰的直达启动SecondActivity需要传递哪些数据.
  15. *此时在活动FirstActivity中启动SecondActivity只需要一小行代码
  16. */
  17. SecondActivity.actionStart(FirstActivity.this, "data1", "data2");

学习书籍:《第一行代码》

常用关于Android活动的实践技巧的更多相关文章

  1. (转载) Android Studio你不知道的调试技巧

    Android Studio你不知道的调试技巧 标签: android studio 2015-12-29 16:05 2514人阅读 评论(0) 收藏 举报  分类: android(74)    ...

  2. 最强 Android Studio 使用小技巧和快捷键

    写在前面 本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android Studio 使用小技巧和快捷键. 根据这些小技巧的使用场景,本 ...

  3. 最强 Android Studio 使用小技巧和快捷键总结

    最强 Android Studio 使用小技巧和快捷键总结   写在前面 本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android ...

  4. Android开发最佳实践

    Android开发最佳实践 摘要 ●使用 Gradle 和它推荐的工程结构 ●把密码和敏感数据放在gradle.properties ●不要自己写 HTTP 客户端,使用Volley或OkHttp库 ...

  5. (转)专项:Android 内存泄露实践分析

    今天看到一篇关于Android 内存泄露实践分析的文章,感觉不错,讲的还算详细,mark到这里. 原文发表于:Testerhome: 作者:ycwdaaaa ;  原文链接:https://teste ...

  6. Android游戏开发实践(1)之NDK与JNI开发03

    Android游戏开发实践(1)之NDK与JNI开发03 前面已经分享了两篇有关Android平台NDK与JNI开发相关的内容.以下列举前面两篇的链接地址,感兴趣的可以再回顾下.那么,这篇继续这个小专 ...

  7. Android游戏开发实践(1)之NDK与JNI开发01

    Android游戏开发实践(1)之NDK与JNI开发01 NDK是Native Developement Kit的缩写,顾名思义,NDK是Google提供的一套原生Java代码与本地C/C++代码&q ...

  8. Android游戏开发实践(1)之NDK与JNI开发02

    Android游戏开发实践(1)之NDK与JNI开发02 承接上篇Android游戏开发实践(1)之NDK与JNI开发01分享完JNI的基础和简要开发流程之后,再来分享下在Android环境下的JNI ...

  9. Android活动启动模式

    在android中,android活动是以栈的方式进行存储,在栈中的活动不断被重新激活至前台和不断被终止也不断被排序.因此对于栈中的活动管理也是一个比较麻烦的事情. android给我们提供了两类活动 ...

随机推荐

  1. [工作相关] 一个虚拟机上面的SAP4HANA的简单使用维护

    1.公司组织竞品分析, 选择了SAP的 SAP4HANA作为竞品 这边协助同事搭建了SAP4HANA的测试环境: 备注 这个环境 应该是同事通过一些渠道获取到的. 里面是基于这个虚拟机进行的说明:: ...

  2. ThreadPoolExecutor参数

    1.ThreadPoolExecutor个参数的意义(类上的注释内容) * @param corePoolSize the number of threads to keep in the* pool ...

  3. poj 2762(强连通分量+拓扑排序)

    题目链接:http://poj.org/problem?id=2762 题意:给出一个有向图,判断任意的两个顶点(u,v)能否从u到达v,或v到达u,即单连通,输出Yes或No. 分析:对于同一个强连 ...

  4. 如何使用git在github上开发的时候和别人在别人仓库上进行协作编程,最后再统一提交

    因为总是忘记,所以记录一下. 这里首先需要添加你需要操作对象的仓库到你的远程仓库并给个名字,才能进行操作.这里我用我同事的邮箱做比喻.(如果对方为私有仓库,你必须要有同样的权限) 使用命令 git r ...

  5. fswatch rsync配置使用 rsync 传输大量细小文件

    贴一个脚本这个脚本是rsync远程同步使用的一个脚本 rsync -avz --progress --exclude .git /Users/piperck/Desktop/gogogo/x pipe ...

  6. 使用nmon进行系统监控

      一.下载并安装: 下载地址:http://nmon.sourceforge.net/pmwiki.php?n=Site.Download 下载版本:nmon16g_x86.tar.gz 不用的Li ...

  7. python 模块之-hashlib

    python 模块hashlib import hashlib m=hashlib.md5()         # 生成MD5加密对象 m.update('jiami-string'.encode(' ...

  8. [luogu4264][USACO18FEB]Teleportation

    题解 先吐槽一波题目:便便传送门,出题人还真的有一点厉害的滑稽. 废话不多说. 首先问题的本质就是求如果当这个传送门的端点位于\(y\)的时候,最小的求出总代价,我们设为函数\(f(y)\). 因为这 ...

  9. 爬虫json数据的处理

    在爬网页的过程中,最喜欢遇到的就是json数据接口,省了不少麻烦,但是json数据也有多种格式. 类型一:标准的json result = json.loads(html.text),将str转成py ...

  10. ormlite 文档

    目录[-] A Fast, Simple, Typed ORM for .NET Download 8 flavours of OrmLite is on NuGet: Docs and Downlo ...