RT、
如果有人问你:在安卓开发的时候,用到JAVA面向对象思想的地方,就直接可以跟他说本文的一键退出的方法。
其实在开发过程中,这样的处理方式有不少,我就挑出本文这个比较典型的东西,本文我是直接在项目里面抠出来的,删除了挺多东西,剩下的足够应付文章标题“一键退出”的需求,好了,不说废话了,直接上代码了。
1.处理Activity的工具
import java.util.ArrayList;
import android.app.Activity;
public class ActivityUtils {
// 声明一个集合用于记录所有打开的活动
private static ArrayList<Activity> list = new ArrayList<Activity>();
// 加入活动对象--------->onCreate
public static void add(Activity activity) {
list.add(activity);
}
// 移除活动对象--------->onDestroy
public static void remove(Activity activity) {
list.remove(activity);
}
// 关闭所有的活动--------->close
public static void removeAll() {
for (Activity activity : list) {
if (!activity.isFinishing()) {
activity.finish();
}
}
}
}
2.Activity基类
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.widget.Toast;
public abstract class BaseActivity extends FragmentActivity{
public <T> T $(int id){
return (T)this.findViewById(id);
}
public void showLong(String message){
Toast.makeText(this, message, Toast.LENGTH_LONG).show();
}
public void showShort(String message){
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}
public void exit(){ // 一键退出程序
ActivityUtils.removeAll();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// requestWindowFeature(Window.FEATURE_NO_TITLE); // 去除标题栏
LogUtil.i("BaseActivity", getClass().getSimpleName()); // 活动启动顺序
ActivityUtils.add(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
ActivityUtils.remove(this);
}
}
最后,还是那句话,大神可出门左(右)转,只希望对新手有所帮助!