</pre><pre name="code" class="html">public class AppManager {
private static Stack<Activity> activityStack;
private static AppManager instance;
public 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){
if(activity!=null&&!activity.isFinishing()){
activityStack.remove(activity);
activity.finish();
activity=null;
}
}
/**
* 结束指定类名的activity
*/
public void finishActivity(Class<?> cls){
for(Activity activity:activityStack){
if(activity.getClass().equals(cls)){
finishActivity(activity);
break;
}
}
}
/**
* 结束所有的activity
*/
public void finishAllActivity(){
for(int i=0,size=activityStack.size();i<size;i++){
if(null!=activityStack.get(i)){
finishActivity(activityStack.get(i));
break;
}
}
activityStack.clear();
}
/**
* 获取指定的Activity
*
*/
public static Activity getActivity(Class<?> cls) {
if (activityStack != null)
for (Activity activity : activityStack) {
if (activity.getClass().equals(cls)) {
return activity;
}
}
return null;
}
/**
* 退出应用程序
*/
public void AppExit(Context context){
finishAllActivity();
//杀死应用进程
android.os.Process.killProcess(Process.myPid());
System.exit(0);
}
}
android应用程序中 activity管理类的实现
最新推荐文章于 2020-10-29 01:48:09 发布