您的位置:首页 > 移动开发

Android开发-自定义application对activity的管理与控制

2017-02-19 20:00 357 查看
自定义AppManager,在需要调用的地方实例化调用。

代码如下:

/**********************************************
* @类名: AppManager
*
* @描述:  应用程序Activity管理类:用于Activity管理和应用程序退出
*
* @作者: DCL
*
* @创建日期: 2015-10-16
*
* @版本: V1.0
*
* @修订历史:
*
***********************************************/
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){
if (null!=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);
android.os.Process.killProcess(android.os.Process.myPid());
} catch (Exception e) {	}
}
}

其中,对于Activity的管理统用也可以借助集合,将activity加入到集合中,定义addActivity,removeActivity,removeAllActivity等方法。移除全部进行高级For循环遍历集合,逐个移除。在一键退出程序记得调用System.exit();方法。

以上是开发项目时的一些心得,仅供参考。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐