Android关于Activity管理的一个简单封装_管理信息系统封装性

其他范文 时间:2020-02-27 18:35:22 收藏本文下载本文
【www.daodoc.com - 其他范文】

Android关于Activity管理的一个简单封装由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“管理信息系统封装性”。

我的Android进阶之旅------>Android关于Activity管理的一个简单封装

2015-07-30 12:10 631人阅读 评论(2)收藏 举报

分类:

Android应用开发(226)

版权声明:本文为【欧阳鹏】原创文章,欢迎转载,转载请注明出处!【http://blog.csdn.net/ouyang_peng】

如何管理当前的运行Activity栈,如何彻底退出程序,本文封装了一个Activity管理类,可以方便随时退出程序。

[java] view plain copy

1.import java.util.Stack;2.3.import android.app.Activity;4.import android.content.Context;5.6.public cla ActivityManager {

7.private static Stack activityStack;8.private static ActivityManager instance;9.static {

10.instance = new ActivityManager();11.} 12.13.public static ActivityManager getInstance(){ 14.return instance;15.} 16.17./**

18.* 添加指定Activity到堆栈

19.*/

20.public void addActivity(Activity activity){ 21.if(activityStack==null){

22.activityStack=new Stack();23.}

24.activityStack.add(activity);25.} 26./**

27.* 获取当前Activity

28.*/

29.public Activity currentActivity(){

30.Activity activity=activityStack.lastElement();31.return activity;32.} 33./**

34.* 结束当前Activity

35.*/

36.public void finishActivity(){

37.Activity activity=activityStack.lastElement();38.finishActivity(activity);39.} 40./**

41.* 结束指定的Activity

42.*/

43.public void finishActivity(Activity activity){ 44.if(activity!=null){

45.activityStack.remove(activity);46.activity.finish();47.activity=null;48.} 49.} 50./**

51.* 结束指定Cla的Activity

52.*/

53.public void finishActivity(Cla cls){ 54.for(Activity activity : activityStack){ 55.if(activity.getCla().equals(cls)){ 56.finishActivity(activity);57.return;58.} 59.} 60.} 61.62./**

63.* 结束全部的Activity

64.*/

65.public void finishAllActivity(){

66.for(int i = 0, size = activityStack.size();i

if(null!= activityStack.get(i)){ 68.activityStack.get(i).finish();69.} 70.}

71.activityStack.clear();72.} 73./**

74.* 退出应用程序

75.*/

76.public void AppExit(Context context){ 77.try {

78.finishAllActivity();

79.android.app.ActivityManager activityMgr=(android.app.ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);80.activityMgr.restartPackage(context.getPackageName());81.System.exit(0);82.} catch(Exception e){ } 83.} 84.}

======

下面从http://www.daodoc.com

17.* weibo : @桥下一粒砂

18.* date : 2012-7-8

19.*

20.*/

21.public cla ActivityUtil { 22.23./**

24.* title : 设置Activity全屏显示

25.* description :设置Activity全屏显示。

26.* @param activity Activity引用

27.* @param isFull true为全屏,false为非全屏

28.*/

29.public static void setFullScreen(Activity activity,boolean isFull){ 30.Window window = activity.getWindow();

31.WindowManager.LayoutParams params = window.getAttributes();32.if(isFull){

33.params.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;34.window.setAttributes(params);

35.window.addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

36.} else {

37.params.flags &=(~WindowManager.LayoutParams.FLAG_FULLSCREEN);38.window.setAttributes(params);

39.window.clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);40.} 41.} 42.43./**

44.* title : 隐藏系统标题栏

45.* description :隐藏Activity的系统默认标题栏

46.* @param activity Activity对象

47.*/

48.public static void hideTitleBar(Activity activity){

49.activity.requestWindowFeature(Window.FEATURE_NO_TITLE);50.} 51.52./**

53.* title : 设置Activity的显示方向为垂直方向

54.* description :强制设置Actiity的显示方向为垂直方向。

55.* @param activity Activity对象

56.*/

57.public static void setScreenVertical(Activity activity){

58.activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);59.} 60.61./**

62.* title : 设置Activity的显示方向为横向

63.* description :强制设置Actiity的显示方向为横向。

64.* @param activity Activity对象

65.*/

66.public static void setScreenHorizontal(Activity activity){

67.activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);68.} 69.70./**

71.* title : 隐藏软件输入法

72.* description :隐藏软件输入法

73.* time : 2012-7-12 下午7:20:00

74.* @param activity

75.*/

76.public static void hideSoftInput(Activity activity){

77.activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);78.} 79.80./**

81.* title : 使UI适配输入法

82.* description :使UI适配输入法

83.* time : 2012-7-17 下午10:21:26

84.* @param activity

85.*/

86.public static void adjustSoftInput(Activity activity){ 87.activity.getWindow().setSoftInputMode(88.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);89.} 90.91./** 92.* title : 跳转到某个Activity。

93.* description :跳转到某个Activity

94.* time : 2012-7-8 下午3:20:00

95.* @param activity 本Activity

96.* @param targetActivity 目标Activity的Cla

97.*/

98.public static void switchTo(Activity activity,Cla targetActivity){

99.switchTo(activity, new Intent(activity,targetActivity));100.} 101.102./**

103.* title : 根据给定的Intent进行Activity跳转

104.* description :根据给定的Intent进行Activity跳转

105.* time : 2012-7-8 下午3:22:23

106.* @param activity Activity对象

107.* @param intent 要传递的Intent对象

108.*/

109.public static void switchTo(Activity activity,Intent intent){ 110.activity.startActivity(intent);111.} 112.113./**

114.* title : 带参数进行Activity跳转

115.* description :带参数进行Activity跳转

116.* time : 2012-7-8 下午3:24:54

117.* @param activity Activity对象

118.* @param targetActivity 目标Activity的Cla

119.* @param params 跳转所带的参数

120.*/

121.public static void switchTo(Activity activity,Cla targetActivity,Map params){ 122.if(null!= params){

123.Intent intent = new Intent(activity,targetActivity);124.for(Map.Entry entry : params.entrySet()){ 125.setValueToIntent(intent, entry.getKey(), entry.getValue());

126.}

127.switchTo(activity, intent);128.} 129.} 130.131./**

132.* title : 带参数进行Activity跳转 133.* description :带参数进行Activity跳转

134.* time : 2012-7-17 下午10:22:58

135.* @param activity

136.* @param target

137.* @param params

138.*/

139.public static void switchTo(Activity activity,Cla target,NameValuePair...params){ 140.if(null!= params){

141.Intent intent = new Intent(activity,target);142.for(NameValuePair param : params){

143.setValueToIntent(intent, param.getName(), param.getValue());

144.}

145.switchTo(activity, intent);146.} 147.} 148.149.150./**

151.* title : 显示Toast消息。

152.* description :显示Toast消息,并保证运行在UI线程中

153.* time : 2012-7-10 下午08:36:02

154.* @param activity

155.* @param meage

156.*/

157.public static void toastShow(final Activity activity,final String meage){

158.activity.runOnUiThread(new Runnable(){ 159.public void run(){

160.Toast.makeText(activity, meage, Toast.LENGTH_SHORT).show();

161.} 162.});163.} 164.165./**

166.* title : 将值设置到Intent里

167.* description :将值设置到Intent里

168.* time : 2012-7-8 下午3:31:17

169.* @param intent Inent对象

170.* @param key Key

171.* @param val Value

172.*/ 173.public static void setValueToIntent(Intent intent, String key, Object val){

174.if(val instanceof Boolean)

175.intent.putExtra(key,(Boolean)val);176.else if(val instanceof Boolean[])

177.intent.putExtra(key,(Boolean[])val);178.else if(val instanceof String)

179.intent.putExtra(key,(String)val);180.else if(val instanceof String[])

181.intent.putExtra(key,(String[])val);182.else if(val instanceof Integer)

183.intent.putExtra(key,(Integer)val);184.else if(val instanceof Integer[])

185.intent.putExtra(key,(Integer[])val);186.else if(val instanceof Long)

187.intent.putExtra(key,(Long)val);188.else if(val instanceof Long[])

189.intent.putExtra(key,(Long[])val);190.else if(val instanceof Double)

191.intent.putExtra(key,(Double)val);192.else if(val instanceof Double[])

193.intent.putExtra(key,(Double[])val);194.else if(val instanceof Float)

195.intent.putExtra(key,(Float)val);196.else if(val instanceof Float[])

197.intent.putExtra(key,(Float[])val);198.} 199.200.}

下载Android关于Activity管理的一个简单封装word格式文档
下载Android关于Activity管理的一个简单封装.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

    热门文章
      整站推荐
        点击下载本文