android程序迁移sdk问题,Android程序的退出总算完美解决,兼容所有SDK

Android程序的退出终于完美解决,兼容所有SDK

上网学了好多方法,关于Android的Activity如何退出。好多方法都不行啦,试了各种方法,下面这种方法就是我最喜欢的,简单又容易懂。

使用单例模式创建一个Activity管理对象,该对象中有一个Activity容器(具体实现自己处理,使用LinkedList等)专门负责存储新开启的每一个Activity,并且容易理解、易于操作,非常不错!

MyApplication类(储存每一个Activity,并实现关闭所有Activity的操作

public class MyApplication extends Application {

private List activityList = new LinkedList();

private static MyApplication instance;

private MyApplication()

{

}

//单例模式中获取唯一的MyApplication实例

public static MyApplication getInstance()

{

if(null == instance)

{

instance = new MyApplication();

}

return instance;

}

//添加Activity到容器中

public void addActivity(Activity activity)

{

activityList.add(activity);

}

//遍历所有Activity并finish

public void exit()

{

for(Activity activity:activityList)

{

activity.finish();

}

System.exit(0);

}

}

在每一个Activity中的onCreate方法里添加该Activity到MyApplication对象实例容器中

MyApplication.getInstance().addActivity(this);

在需要结束所有Activity的时候调用exit方法

MyApplication.getInstance().exit();

1 楼

administrator1616

2011-08-24

icon_idea.gif

2 楼

marquis

2011-09-02

icon_idea.gif

3 楼

jayaaaiii

2011-09-16

icon_idea.gif   真的非常感谢你。。我纠结4天的问题终于解决了。。。

icon_idea.gif

4 楼

ghy511024

2011-09-25

大神

icon_evil.gif 

icon_evil.gif

5 楼

cyilinycc

2011-10-10

非常感谢你提供的这个方法,但我经过测试之后,发现这个方法存在弊端,就是没有及时清空列表的activity记录,造成程序的内存只增无减。

比方说我有20个activity,那我跳转了100次,这个记录是100,但我只需要20,另外80个就是强占用内存的罪魁祸首!

通过MAT工具发现这个问题,建议在里面建立一个clearActivity的函数,负责remove某个被finish的activity,这样才能实现回收。

6 楼

jk138

2011-10-11

谢谢各位的评论,楼下的建议很好,值得大家注意了.

7 楼

myg_315

2011-11-25

我也在调查这个问题,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值