程序退出功能,也就是安全退出已调用多个Activity的程序,将程序打开的页面一次性全部关闭。
在网上查android退出程序的方式有很多,这里介绍一种自己定义一个继承activity的基类,然后其他自己的activity继承自定义基类,在基类中实现关闭程序的功能。
1、首先创建一个控制activity的工具类:
package com.wang.applicationback.utils; import java.util.ArrayList; import java.util.List; import android.app.Activity; /** * Activity活动管理工具 * @author HeJW * */ public class ActivityCollector { public static List<Activity> activitys = new ArrayList<Activity>(); /** * 向List中添加一个活动 * @param activity 活动 */ public static void addActivity( Activity activity ){ activitys.add(activity); } /** * 从List中移除活动 * @param activity 活动 */ public static void removeActivity( Activity activity ){ activitys.remove(activity); } /** * 将List中存储的活动全部销毁掉 */ public static void finishAll(){ for ( Activity activity : activitys ) { if ( !activity.isFinishing() ) { activity.finish(); } } } }
2、创建自定义的继承activity类的基类:
package com.wang.applicationback.base; import com.wang.applicationback.utils.ActivityCollector; import android.app.Activity; import android.os.Bundle; public class BaseActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActivityCollector.addActivity(this); } @Override protected void onDestroy() { super.onDestroy(); ActivityCollector.removeActivity(this); } }
3、主要功能代码就已经完成了,在以后写的activity界面中,要让自己的activity继承自定义的基类,如:
package com.wang.applicationback; import android.content.Intent; import android.os.Bundle; import android.view.View; import com.wang.applicationback.base.BaseActivity; public class Activity1 extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity1); } }
4、当需要“退出程序”这个功能的时候,只需要用如下代码就可:
ActivityCollector.finishAll();
附上demo源码
扫描二维码关注公众号,回复:
379624 查看本文章