学习笔记:两个开发过程的小技巧
2017-03-14 22:34
218 查看
1.在实际开发中,我们经常会遇到查看当前Activity叫什么名字,是哪个类,当我们去翻阅别的的代码时,真是头疼,所以可已在项目的BaseActivity中写一个得到Activity名称的方法,继承这个Base的Activity的名字都会被打印出来,如下
运行结果:
2.在开发中可能会遇到随时随地退出程序的时候,这时候该怎么处理呢,可以写一个Activity的管理类,想退出时,依次finish掉Activity
然后在BaseActivity生命周期中做添加和删除操作
如果想在某一个Actiivty中退出程序
如果想保证程序完全退出,可以在finish掉所有Actiivty之后加上结束进程代码android.os.Process.killProcess(android.os.Process.myPid())
public class BaseActivity extends AppCompatActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.e("className:", getActivityName()); } private String getActivityName() { return getClass().getSimpleName(); } }
运行结果:
2.在开发中可能会遇到随时随地退出程序的时候,这时候该怎么处理呢,可以写一个Activity的管理类,想退出时,依次finish掉Activity
public class ActivityControler { private static List<Activity> activityList = new ArrayList<>(); //添加Actiivty public static void addActiivty(Activity activity) { activityList.add(activity); } //删除Activity public static void removeActivity(Activity activity) { activityList.remove(activity); } //退出程序时逐个关闭 public static void removeAllActivity() { if (!activityList.isEmpty()) { for (Activity activity : activityList) { if (!activity.isFinishing()) activity.finish(); } } } }
然后在BaseActivity生命周期中做添加和删除操作
public class BaseActivity extends AppCompatActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.e("className:", getActivityName()); } private String getActivityName() { return getClass().getSimpleName(); } @Override protected void onResume() { super.onResume(); ActivityControler.addActiivty(this); } @Override protected void onDestroy() { super.onDestroy(); ActivityControler.removeActivity(this); } }
如果想在某一个Actiivty中退出程序
public class SecondActivity extends BaseActivity { private Button mButton; @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); mButton = (Button) findViewById(R.id.button); mButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ActivityControler.removeAllActivity(); //android.os.Process.killProcess(android.os.Process.myPid()); } }); } }
如果想保证程序完全退出,可以在finish掉所有Actiivty之后加上结束进程代码android.os.Process.killProcess(android.os.Process.myPid())
相关文章推荐
- Coolite开发过程中的学习笔记(二)
- (ios开发学习笔记三)两个窗体之间跳转,实现多窗体
- Python学习笔记(二)Pytho解释器和程序开发、执行过程
- 软件开发过程学习笔记(二)之软件需求模板 分类: 开发过程 2015-07-08 12:51 8人阅读 评论(0) 收藏
- DirectShow 学习笔记__第五章——Diectshow应用开发过程
- IOS学习笔记05---C语言程序的开发运行过程
- Android开发学习笔记-自定义组合控件的过程
- Android开发学习笔记4--安卓程序安装与启动过程剖析
- 软件开发过程学习笔记(一)之软件开发流程
- android开发学习笔记(9)Intent之在两个Activity之间切换
- 【Cocos2d-X开发学习笔记】第18期:动作类之改变动作对象、函数回调动作以及过程动作的使用
- 软件开发过程及几个常见的开发模型(软件工程学习笔记)
- 软件开发过程学习笔记(一)之软件开发流程 分类: 开发过程 2015-07-08 12:43 9人阅读 评论(0) 收藏
- 统一软件开发过程学习笔记
- [转载]Coolite开发过程中的学习笔记
- Moblin MID开发学习笔记 - application launcher安装过程
- 【Cocos2d-X开发学习笔记】第18期:动作类之改变动作对象、函数回调动作以及过程动作的使用
- 软件开发过程学习笔记(二)之软件需求模板
- 软件开发过程学习笔记(四)之详细设计说明书模板 分类: 开发过程 2015-07-08 14:46 12人阅读 评论(0) 收藏
- 【嵌入式开发】gcc 学习笔记(一) - 编译C程序 及 编译过程