android退出应用

随便写写:

方法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:

伪退出,不真正删除内存资源等信息,方便用户下次快速使用:

private void showTips() {
 
         AlertDialog alertDialog = new AlertDialog.Builder( this ).setTitle( "提醒" )
                 .setMessage( "是否退出程序" )
                 .setPositiveButton( "确定" , new DialogInterface.OnClickListener() {
 
                     public void onClick(DialogInterface dialog, int which) {
                         Intent intent = new Intent(Intent.ACTION_MAIN); 
                         intent.addCategory(Intent.CATEGORY_HOME); 
                         intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
                         startActivity(intent); 
                     android.os.Process.killProcess(android.os.Process.myPid());
                     }
 
                 }).setNegativeButton( "取消" ,
 
                 new DialogInterface.OnClickListener() {
                     public void onClick(DialogInterface dialog, int which) {
                         return ;
                     }
                 }).create(); // 创建对话框
         alertDialog.show(); // 显示对话框
     }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值