程序启动第一个界面类: net.oschina.app.AppStart
功能描述:一张图片
代码细节描述:一个透明度的动画效果,效果动画完成后自动启动新的Activity(Main)

基本BaseActivity类,继承自Activity
功能描述:分别在onCreate方法中添加Activity到栈 ; 在onDestroy方法中移除Activity
代码细节描述: 提供了一个单例类AppManager,把创建的Activity放入到栈中进行管理,提供添加Activity , 移除当前Activity , 移除指定的Activity , 移除所有的Activity ,获得当前的Activity , 退出程序。 这个工具类非常适合与用作开发使用,具体代码如下:

import java.util.Stack;

import android.app.Activity;
import android.app.ActivityManager;
import android.content.Context; /**
* 应用程序Activity管理类:用于Activity管理和应用程序退出
* @author liux (http://my.oschina.net/liux)
* @version 1.0
* @created 2012-3-21
*/
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();
}
/**
* 退出应用程序
*/
@SuppressWarnings("deprecation")
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) { }
}
}
 
仿Activity管理写的Fragment管理

/**
* @author lee0000
* @version 1
* @time 10月7日
* */ public class FraManager {
private static Stack<Fragment> fragmentStack;
private static FraManager instance;
private static final Object obj = new Object(); private FraManager() {
} /**
* 单一实例
*/
public static FraManager getFraManager() {
if (instance == null) {
synchronized (obj) {
if (instance == null) {
instance = new FraManager();
}
}
}
return instance;
} /**
* 添加Fragment到堆栈
*/
public static void pushFragment(FragmentActivity fact, Fragment fragment, int layoutID, String... title){
if(fragmentStack==null){
fragmentStack=new Stack<Fragment>();
}
fragmentStack.push(fragment);
FragmentTransaction ft = fact.getSupportFragmentManager().beginTransaction(); ft.replace(layoutID, fragment);
if (fragmentStack.size() > 1) {
ft.addToBackStack(null);
}
ft.commit();
} /**
* 弹出Fragment
*/
public static Fragment popFragment(FragmentActivity fact) {
Fragment fragment = fragmentStack.pop();
FragmentTransaction ft = fact.getSupportFragmentManager().beginTransaction();
ft.remove(fragment);
ft.commit();
return fragment;
} /***
* 弹出指定Activity中所有的fragment
* */
public static void finishFragment(FragmentActivity fact){
for (int i = 0, size = fragmentStack.size(); i < size; i++){
Fragment stackFragment = fragmentStack.get(i);
if (null != stackFragment){
Fragment fragment = stackFragment;
if (fact == fragment.getActivity()) {
FragmentTransaction ft = fragment.getFragmentManager().beginTransaction();
ft.remove(fragment);
fragmentStack.remove(i);
ft.commit();
}
}
}
} /**
* 清除栈中所有的项
* */
public static void clearStack(){
if (fragmentStack != null && fragmentStack.isEmpty()) {
fragmentStack.clear();
}
}
}

activity管理类 appManager的更多相关文章

  1. Android Activity 管理 (AppManager)(非原创)

    AppManager 类: /** * 应用程序Activity管理类:用于Activity管理和应用程序退出 *  */ public class AppManager {     private ...

  2. Android Activity管理类

    public class AppManager { private static Stack<Activity> activityStack; private static AppMana ...

  3. Activity管理类

    package com.yunpai.tms.application; import android.app.Activity; import android.app.ActivityManager; ...

  4. 【Android工具类】Activity管理工具类AppManager

    转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 import java.util.Stack; import android.app.Activity; i ...

  5. 我的Android进阶之旅------&gt;Android关于Activity管理的一个简单封装

    怎样管理当前的执行Activity栈,怎样彻底退出程序.本文封装了一个Activity管理类,能够方便随时退出程序. import java.util.Stack; import android.ap ...

  6. Android项目实战(三十七):Activity管理及BaseActivity的实现

    Ps:7-10月 完成公司两个app项目上架.漏掉的总结 开始慢慢补上. 一.写一个Activity的管理类 1.单例模式,以栈(先进后出)的形式存储Activity对象 public class A ...

  7. DownloadManager 下载管理类

    演示 简介 从Android 2.3开始新增了一个下载管理类,在SDK的文档中我们查找android.app.DownloadManager可以看到.下载管理类可以长期处理多个HTTP下载任务,客户端 ...

  8. [置顶] 滴滴插件化框架VirtualAPK原理解析(一)之插件Activity管理

    上周末,滴滴与360都开源了各自的插件化框架,VirtualAPK与RePlugin,作为一个插件化方面的狂热研究者,在周末就迫不及待的下载了Virtualapk框架来进行研究,本篇博客带来的是Vir ...

  9. Android wifi管理类:WifiAdmin

    1.wifi的五种状态: WIFI_STATE_DISABLED   WIFI网卡不可用 WIFI_STATE_DISABLING WIFI网卡正在关闭 WIFI_STATE_ENABLED     ...

随机推荐

  1. Shell脚本常用判断

    -e filename 如果 filename存在,则为真 -d filename 如果 filename为目录,则为真  -f filename 如果 filename为常规文件,则为真 -L fi ...

  2. 转:JMeter基础--逻辑控制器Logic Controller

    1.ForEach控制器 ForEach控制器在用户自定义变量中读取一系列相关的变量.该控制器下的采样器或控制器都会被执行一次或多次,每次读取不同的变量值.所以ForEach总是和User Defin ...

  3. “Cannot load php5apache2_4.dll into server”问题的解决方法

    摘要 PHP5.5.0+Apache Httpd 2.4.3,完成配置文件的修改后,启动Apache服务器,报Cannot load php5apache2_4.dll into server错误,记 ...

  4. js 系统时间对象

    alert(new Date()); 年是多少,月,日 var year=new Date(); var m=year.Getfullmonth; alert(m);月份特殊,必须加个数字1 数据类型 ...

  5. Ubuntu服务器断网问题解决

    原因:dns服务器没有了配置信息. 配置dns服务器          ubuntu 的dns服务器信息,放在 /etc/resolv.conf中,          添加dns服务器地址,如192. ...

  6. OpenCV——mixChannels函数

    mixChannels Copies specified channels from input arrays to the specified channels of output arrays. ...

  7. Storyboard中拖拽控件不能运行的问题(在运行的时候,相应的控件代码没有被执行)

    具体问题见 http://q.cnblogs.com/q/62183/ storyboard Table view上Selection 那一项要用single selection

  8. HP ProLiant DL380 G6 服务器 - 清 BIOS 的方法

    问题 HP ProLiant DL380 G6服务器的BIOS位置在哪里? 如何清BIOS,具体步骤是什么? 解决方案 DL380 G6服务器清BIOS过程分为三步: 1. 为服务器断电(拔掉电源线) ...

  9. windows身份验证无法登陆,错误: 18456

    升级win10后,出现这样的错误,sa可以登录,在http://bbs.csdn.net/topics/360071848中看到4#的解决办法 CREATE LOGIN [zhangzaocha-PC ...

  10. linux c中select使用技巧

    1.select函数作为定时器使用    it_value.tv_sec = 0;    it_value.tv_usec = 100000:    select(1,NULL,NULL,NULL,& ...