zl程序教程

您现在的位置是:首页 >  其他

当前栏目

退出程序(转自:第一行代码)

程序代码 退出 第一行 转自
2023-09-27 14:19:41 时间

如果目前你手机的界面还停留在ThirdActivity,你会发现当前想退出程序是非常不方便的,需要连按三次Back 键才行。按Home 键只是把程序挂起,并没有退出程序。其实这个问题就足以引起你的思考,如果我们的程序需要一个注销或者退出的功能该怎么办呢?必须要有一个随时随地都能退出程序的方案才行。其实解决思路也很简单,只需要用一个专门的集合类对所有的活动进行管理就可以了,下面我们就来实现一下。

 

一.新建一个ActivityCollector 类作为活动管理器,代码如下所示:

public class ActivityCollector {

       public static List<Activity> activities = new ArrayList<Activity>();

       public static void addActivity(Activity activity) {

              activities.add(activity);

       }

       public static void removeActivity(Activity activity) {

              activities.remove(activity);

       }

       public static void finishAll() {

              for (Activity activity : activities) {

                     if (!activity.isFinishing()) {

                            activity.finish();

                     }

              }

              System.exit(0);

       }

}

 

二.新建一个BaseActivity

public class BaseActivity extends Activity {

       @Override

       protected void onCreate(Bundle savedInstanceState) {

              super.onCreate(savedInstanceState);

              Log.d("BaseActivity", getClass().getSimpleName());

              ActivityCollector.addActivity(this);

       }

 

       @Override

       protected void onDestroy() {

              super.onDestroy();

              ActivityCollector.removeActivity(this);

       }

}

 

三.所有Activity继承BaseActivity,再退出的地方加

ActivityCollector.finishAll();

 

 

 

*****************

Android 应用退出后不留在最近运行任务栏中
只要给Activity设置“Android:excludeFromRecents=true”即可,官方的解释如下:
如果设置为true,那么这个Activity将不会出现在最近任务列表中,如果这个Activity是整个Task的根Activity,整个Task将不会出现在最近任务列表中。