<<第一行代码>>--随时随地退出程序
2016-02-29 13:01
323 查看
用一个专门的集合类对所有的活动进行管理
public class ActivityCollector{
public static List<Activity> activitiies = new ArrayList<Activity>();
//添加activity到活动集合中
public static void addActivity(Activity activity){
activitied.add(activity);
}
//从活动集合中移除activity
public static void removeActivity(Activity activity){
activities.remove(activity);
}
//finish所有activity
public static void finishAll(){
for(Activity activity : activities){
if(!activity.isFinishing()){
activity.finish();
}
}
}
}
然后修改Activity的onCreate()和onDestroy(),可以在BaseActivity中使用
//参照技巧--快速找到当前界面是哪个activity
public class BaseActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("BaseActivity", getClass().getSimpleName());
ActivityCollector.addActivity(this);
}
@Override
protected void onDestroy(){
super.onDestroy();
ActivityCollector.removeActivity(this);
}
}
以后,不管在什么地方退出程序,只需要调用ActivityCollector.finishAll()方法就可以了。
例如按钮点击事件:
button1.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
ActivityCollector.finishAll();
}
});
当然可以在销毁所有活动的代码后结束掉当前进程,以保证程序安全退出。
public class ActivityCollector{
public static List<Activity> activitiies = new ArrayList<Activity>();
//添加activity到活动集合中
public static void addActivity(Activity activity){
activitied.add(activity);
}
//从活动集合中移除activity
public static void removeActivity(Activity activity){
activities.remove(activity);
}
//finish所有activity
public static void finishAll(){
for(Activity activity : activities){
if(!activity.isFinishing()){
activity.finish();
}
}
}
}
然后修改Activity的onCreate()和onDestroy(),可以在BaseActivity中使用
//参照技巧--快速找到当前界面是哪个activity
public class BaseActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("BaseActivity", getClass().getSimpleName());
ActivityCollector.addActivity(this);
}
@Override
protected void onDestroy(){
super.onDestroy();
ActivityCollector.removeActivity(this);
}
}
以后,不管在什么地方退出程序,只需要调用ActivityCollector.finishAll()方法就可以了。
例如按钮点击事件:
button1.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
ActivityCollector.finishAll();
}
});
当然可以在销毁所有活动的代码后结束掉当前进程,以保证程序安全退出。
相关文章推荐
- python(0)-对《python中str操作的学习》的补充
- powerdeisger name comment互转的代码
- python(0)-Python中str操作的学习
- C#利用反射来判断对象是否包含某个属性的实现方法
- JAVA学习【8】集合框架HashMap、TreeMap的基本用法
- asp.net 母版页使用详解
- Python中用format函数格式化字符串的用法
- Eclipse快捷键大全
- python 逐行读取文件的三种方法
- AS 项目转 Eclipse 收集
- 使用VS Code开发ASP.NET Core 应用程序
- asp select count(*) 用 open还是excute
- 20个非常有用的Java程序片段
- 鸡兔同笼代码
- JDK5新特性之泛型
- 个人介绍和GitHub
- 基于Spring的QQ第三方登录实现
- 27.prim算法 最优布线问题(wire.cpp)
- 27.prim算法 最优布线问题(wire.cpp)
- 27.prim算法 最优布线问题(wire.cpp)