Android 应用程序Activity管理类:用于Activity管理和应用程序退出
2017-03-29 16:06
411 查看
一个AndroidappManager类,用于管理Activity和应用程序退出,具体功能包括添加Activity到堆栈、获取当前Activity、结束当前Activity、结束指定的Activity、结束指定类名的Activity、退出应用程序、检测当前包名的应用是否安装,检测当前包名的当前版本的应用是否安装、解析包名下的MainActivity启动路径。
view
source
print?
view
source
001 | import java.util.List; |
002 | import java.util.Stack; |
003 | import android.app.Activity; |
004 | import android.app.ActivityManager; |
005 | import android.content.Context; |
006 | import android.content.Intent; |
007 | import android.content.pm.PackageInfo; |
008 | import android.content.pm.ResolveInfo; |
009 | import android.content.pm.PackageManager.NameNotFoundException; |
010 | /** |
011 | * 应用程序Activity管理类:用于Activity管理和应用程序退出 |
012 | */ |
013 | public class AppManager { |
014 | private static Stack<Activity> activityStack; |
015 | private static AppManager instance; |
016 | private AppManager() { |
017 | } |
018 | /** |
019 | * 单一实例 |
020 | */ |
021 | public static AppManager |
022 | if (instance null ) { |
023 | instance new AppManager(); |
024 | } |
025 | return instance; |
026 | } |
027 | /** |
028 | * 添加Activity到堆栈 |
029 | */ |
030 | public void addActivity(Activity |
031 | if (activityStack null ) { |
032 | activityStack new Stack<Activity>(); |
033 | } |
034 | activityStack.add(activity); |
035 | } |
036 | /** |
037 | * 获取当前Activity(堆栈中最后一个压入的) |
038 | */ |
039 | public Activity |
040 | Activity |
041 | return activity; |
042 | } |
043 | /** |
044 | * 结束当前Activity(堆栈中最后一个压入的) |
045 | */ |
046 | public void finishActivity() { |
047 | Activity |
048 | finishActivity(activity); |
049 | } |
050 | /** |
051 | * 结束指定的Activity |
052 | */ |
053 | public void finishActivity(Activity |
054 | if (activity null ) { |
055 | activityStack.remove(activity); |
056 | activity.finish(); |
057 | activity null ; |
058 | } |
059 | } |
060 | /** |
061 | * 结束指定类名的Activity |
062 | */ |
063 | public void finishActivity(Class<?> |
064 | for (Activity |
065 | if (activity.getClass().equals(cls)) { |
066 | finishActivity(activity); |
067 | } |
068 | } |
069 | } |
070 | /** |
071 | * 结束所有Activity |
072 | */ |
073 | public void finishAllActivity() { |
074 | for ( int i 0 , |
075 | if ( null != |
076 | activityStack.get(i).finish(); |
077 | } |
078 | } |
079 | activityStack.clear(); |
080 | } |
081 | /** |
082 | * 退出应用程序 |
083 | */ |
084 | public void AppExit(Context |
085 | try { |
086 | finishAllActivity(); |
087 | ActivityManager |
088 | activityMgr.restartPackage(context.getPackageName()); |
089 | System.exit( 0 ); |
090 | } catch (Exception |
091 | } |
092 | } |
093 | /** |
094 | * 检测安装 |
095 | */ |
096 | public static boolean checkApp(Context int versionCode) { |
097 | // 检测当前包名的应用是否安装,检测当前包名的当前版本的应用是否安装 |
098 | PackageInfo null ; |
099 | try { |
100 | packageInfo 0 ); |
101 | if (packageInfo.versionCode |
102 | return true ; |
103 | } |
104 | } catch (NameNotFoundException |
105 | return false ; |
106 | } |
107 | return false ; |
108 | } |
109 | /** |
110 | * 解析包名下的MainActivity启动路径 |
111 | */ |
112 | public static String |
113 | if (!packageName.equals( "" )){ |
114 | String mainClassName= "" ; |
115 | Intent new Intent(Intent.ACTION_MAIN, null ); |
116 | resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER); |
117 | resolveIntent.setPackage(packageName); |
118 | List<ResolveInfo> 0 ); |
119 | ResolveInfo |
120 | if (ri null ) { |
121 | mainClassName |
122 | } |
123 | return mainClassName; |
124 | } |
125 | return "" ; |
126 | } |
127 | } |
相关文章推荐
- 应用程序Activity管理类:用于Activity管理和应用程序退出
- Activity管理类,用于Activity管理和应用程序退出
- Android Activity管理类,管理Activity和退出应用
- Android 应用程序退出和Activity的管理
- 用于Activity管理和应用程序退出
- 用于Activity管理和应用程序退出
- Activity管理类:用于管理Activity和退出程序
- 通用于Activity管理和应用程序退出
- android-管理activity,随时随地退出Activity
- android深入浅出视频笔记 android的应用程序的启动退出 Activity Window View三者的关系
- Android-退出应用程序的所有activity
- [Activity生命周期] Android 完美退出应用程序
- android中Activity的管理及程序的退出
- Android用单列模式来管理Activity,并实现完全退出
- Android:销毁所有的Activity退出应用程序几种方式
- Android 退出应用程序,所有活动,活动的管理
- android完美退出程序(创建单例管理所有打开的activity)
- Android 应用程序多Activity跳转之后退出整个程序
- Android退出一个多Activity应用程序的方法
- Android退出启动了多个Activity的应用程序