Android 怎么退出整个应用程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 怎么退出整个应用程序相关的知识,希望对你有一定的参考价值。

1.后面添加了一个菜单返回功能键,这个方法也只能用system.exit(0)来关闭当前活动的Activity,附代码:
public boolean onCreateOptionsMenu(Menu menu)


super.onCreateOptionsMenu(menu);
MenuItem item = menu.add(Menu.NONE, Menu.NONE, Menu.NONE, "Exit");
item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener()

public boolean onMenuItemClick(MenuItem item)

System.exit(0);
return true;

);
return true;


2.这样太不方便,每次退出界面之后应用程序还在运行,
网上提供了几种方法,将下面SysApplication这个类复制到工程里面,然后在每个Acitivity的oncreate方法里面通过SysApplication.getInstance().addActivity(this); 添加当前Acitivity到ancivitylist里面去,最后在想退出的时候调用SysApplication.getInstance().exit();可直接关闭所有的Acitivity并退出应用程序。
附代码:
import java.util.LinkedList;
import java.util.List;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Application;
import android.content.DialogInterface;
import android.content.Intent;

public class SysApplication extends Application
private List mList = new LinkedList();
private static SysApplication instance;

private SysApplication()

public synchronized static SysApplication getInstance()
if (null == instance)
instance = new SysApplication();

return instance;

// add Activity
public void addActivity(Activity activity)
mList.add(activity);


public void exit()
try
for (Activity activity : mList)
if (activity != null)
activity.finish();

catch (Exception e)
e.printStackTrace();
finally
System.exit(0);


public void onLowMemory()
super.onLowMemory();
System.gc();


3.在应用程序里面 的activity的oncreate里面添加SysApplication.getInstance().addActivity(this)
如:
public void onCreate(Bundle savedInstanceState)

super.onCreate(savedInstanceState);
setContentView(R.layout.main);
SysApplication.getInstance().addActivity(this);
参考技术A

其实只需要在application类中添加一个public static boolean exit=false;

同时在自己定义的BaseActivity基类中的

onRestart方法里,添加if(App.exit)finish();即可。

最后只需要在你要退出activity的地方加一句App.exit = true就退出app了

Android-ActivityManager 退出整个应用

在做Android APP 过程中,有退出整个Project的功能,以下就是接受退出整个应用的操作:

ActivityManager是用来管理记录每一个Activity,最后统一用来退出结束:

 

public class ActivityManager {

    /**
     *  定义HashSet集合来装Activity,是可以防止Activity不被重复
     */
    private static HashSet<Activity> hashSet = new HashSet<Activity>();

    private static ActivityManager instance = new ActivityManager();;

    private ActivityManager() {}

    public static ActivityManager getInstance() {
        return instance;
    }

    /**
     * 每一个Activity 在 onCreate 方法的时候,可以装入当前this
     * @param activity
     */
    public void addActivity(Activity activity) {
        try {
            hashSet.add(activity);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 调用此方法用于退出整个Project
     */
    public void exit() {
        try {
            for (Activity activity : hashSet) {
                if (activity != null)
                    activity.finish();
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            System.exit(0);
        }
    }

    // 此方法用于扩展使用
    /*
    public void onLowMemory() {
      super.onLowMemory();
      System.gc();
    }
    */

}

 

其实一个APP项目的退出方式有很多种,目前现在采用最简单的一种退出方式,就是两步走,一是记录每一个Activity.this 二是把记录好的Activity 全部统一activity.finish();即可:

记录每一个Activity:

ActivityManager.getInstance().addActivity(this);

 

调用退出:

 ActivityManager.getInstance().exit();

 

以上是关于Android 怎么退出整个应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Android 怎么退出整个应用程序

Flutter:退出应用

android怎样点击两下退出程序

Android-ActivityManager 退出整个应用

Android App 退出整个应用

Android中再按一次退出和完美退出整个应用程序