用于Activity管理和应用程序退出
来源:互联网 发布:如何成为程序员大神 编辑:程序博客网 时间:2024/04/28 00:35
一、工具类
public class AppManager {
private static Stack<Activity> activityStack;
private static AppManager instance;
private AppManager(){}
/**
* 单一实例
*/
public static AppManager getAppManager(){
if(instance==null){
instance=new AppManager();
}
return instance;
}
/**
* 添加Activity到堆栈
*/
public void addActivity(Activity activity){
if(activityStack==null){
activityStack=new Stack<Activity>();
}
activityStack.add(activity);
}
/**
* 获取当前Activity(堆栈中最后一个压入的)
*/
public Activity currentActivity(){
Activity activity=activityStack.lastElement();
return activity;
}
/**
* 结束当前Activity(堆栈中最后一个压入的)
*/
public void finishActivity(){
Activity activity=activityStack.lastElement();
finishActivity(activity);
}
/**
* 结束指定的Activity
*/
public void finishActivity(Activity activity){
if(activity!=null){
activityStack.remove(activity);
activity.finish();
activity=null;
}
}
/**
* 结束指定类名的Activity
*/
public void finishActivity(Class<?> cls){
for (Activity activity : activityStack) {
if(activity.getClass().equals(cls) ){
finishActivity(activity);
}
}
}
/**
* 结束所有Activity
*/
public void finishAllActivity(){
for (int i = 0, size = activityStack.size(); i < size; i++){
if (null != activityStack.get(i)){
activityStack.get(i).finish();
}
}
activityStack.clear();
}
/**
* 退出应用程序
*/
public void AppExit(Context context) {
try {
finishAllActivity();
ActivityManager activityMgr= (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
activityMgr.restartPackage(context.getPackageName());
System.exit(0);
} catch (Exception e) { }
}
}
二、使用
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// TODO: add setContentView(...) invocation
ButterKnife.bind(this);
AppManager.getAppManager().addActivity(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
AppManager.getAppManager().finishActivity(this);
}
//关闭
AppManager.getAppManager().finishAllActivity();
0 0
- 用于Activity管理和应用程序退出
- 用于Activity管理和应用程序退出
- 应用程序Activity管理类:用于Activity管理和应用程序退出
- Activity管理类,用于Activity管理和应用程序退出
- AppManager 用于管理activity和退出机制
- Activity管理类,用于Activity管理和退出
- Android 应用程序退出和Activity的管理
- 通用于Activity管理和应用程序退出
- 管理activity 完全退出应用程序
- Activity管理和应用程序的退出(推荐使用stack)
- Activity管理和应用程序的退出(推荐使用stack)
- Activity管理类,随时随地退出应用程序
- Activity的LaunchMode和退出应用程序
- Activity启动模式和栈退出应用程序
- Android-Activity的LaunchMode和退出应用程序
- Activity的LaunchMode和退出应用程序
- Activity的LaunchMode和退出应用程序
- Android Activity管理类,管理Activity和退出应用
- vue.js关于Object.defineProperty的利用原理
- No plugin found for prefix 'war' in the current project and in the plugin groups
- dom4j修改,获取,增加xml中某个元素的属性值
- 《CSS权威指南第三版》第六章-文本属性的读书笔记
- 使用Notification
- 用于Activity管理和应用程序退出
- C primer plus C 第六章控制语句:循环 编程练习个人练习
- linux 工作调度
- To be the better one for programing
- JAVA scanner扫描器和BufferedReader流输入的用法
- (3)防火墙的应用----NAT和ACL
- springmvc配置
- temp
- 二十一,iOS app图标数字,状态栏样式等设置