您的位置:首页 > 移动开发 > Android开发

android退出应用

2014-04-17 09:49 253 查看
随便写写:

方法1:写一个栈,退出的时候释放掉所有activitys,等的资源,如下:

自定义一个Actiivty 栈,不过利用一个单例模式的Activity栈来管理所有Activity。并提供退出所有Activity的方法。代码如下:

public class ScreenManager {

private static Stack<Activity> activityStack;

private static ScreenManager instance;

private ScreenManager(){

}

public static ScreenManager getScreenManager(){

if(instance==null){

instance=new ScreenManager();

}

return instance;

}

//退出栈顶Activity

public void popActivity(Activity activity){

if(activity!=null){

activity.finish();

activityStack.remove(activity);

activity=null;

}

}

//获得当前栈顶Activity

public Activity currentActivity(){

Activity activity=activityStack.lastElement();

return activity;

}

//将当前Activity推入栈中

public void pushActivity(Activity activity){

if(activityStack==null){

activityStack=new Stack<Activity>();

}

activityStack.add(activity);

}

//退出栈中所有Activity

public void popAllActivityExceptOne(Class cls){

while(true){

Activity activity=currentActivity();

if(activity==null){

break;

}

if(activity.getClass().equals(cls) ){

break;

}

popActivity(activity);

}

}

}

//---------------------------------------------------------------------------------------------------------------------
或者这样:

将下面SysApplication这个类复制到工程里面,然后在每个Acitivity的oncreate方法里面通过SysApplication.getInstance().addActivity(this); 添加当前Acitivity到ancivitylist里面去,最后在想退出的时候调用SysApplication.getInstance().exit();可直接关闭所有的Acitivity并退出应用程序。

附代码:

importjava.util.LinkedList;

importjava.util.List;

importandroid.app.Activity;

importandroid.app.AlertDialog;

importandroid.app.Application;

importandroid.content.DialogInterface;

importandroid.content.Intent;



publicclass SysApplication extends Application{

private List mList = newLinkedList();

private static SysApplicationinstance;



private SysApplication(){

}

public synchronized static SysApplicationgetInstance() {

if (null == instance) {

instance = new SysApplication();

}

return instance;

}

// addActivity

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();

}

}

在应用程序里面 的activity的oncreate里面添加SysApplication.getInstance().addActivity(this)

如:

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

SysApplication.getInstance().addActivity(this);

}

方法2:

伪退出,不真正删除内存资源等信息,方便用户下次快速使用:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: