[Android设计模式]Android退出应用程序终极方法

原文

1.自定义Application管理Activity

public class DoomApplication extends Application {
private static DoomApplication instance;
private Stack<Activity> actStack = new Stack<Activity>();


@Override
public void onCreate() {
super.onCreate();
instance = this;
}


public static DoomApplication getInstance() {
return instance;
}


// 增加一个Activity
public void addActivity(Activity activity) {
actStack.addElement(activity);
}


// 得到当前Activity
public Activity getCurrentActivity() {
if (actStack.isEmpty()) {
return null;
} else {
return actStack.lastElement();
}
}


// 结束当前Activity
public void finishCurrentActiviy() {
if (actStack.isEmpty()) {
return;
}
finishActivity(actStack.lastElement());
}


// 结束指定Activity
public void finishActivity(Activity activity) {
if (activity != null) {
actStack.remove(activity);
activity.finish();
}
}


// 结束指定类名Activity
public void finishActivity(Class<?> cls) {
Activity finishAct = null;
for (Activity findAct : actStack) {
if (findAct.getClass().equals(cls)) {
finishAct = findAct;
break;
}
}
finishActivity(finishAct);
}


// 程序退出
public void AppExit() {
for (Activity findAct : actStack) {
findAct.finish();
}
actStack.clear();
}


}


2. 定义一个BaseActiviy类,每次创建,则加入application的栈中

public abstract class BaseActivty extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
DoomApplication.getInstance().addActivity(BaseActivty.this);
}


}


3.AndroidManifest.xml设置:

-<application android:name="com.example.applicationcompleteexitdemo.DoomApplication" android:allowBackup="true" android:icon="@drawable/ic_launcher"





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值