`
舟迹天涯
  • 浏览: 3800 次
社区版块
存档分类
最新评论

Adroid怎么使按两次返回键退出整个程序

 
阅读更多
    我们在写android应用程序时,经常会遇到想退出当前Acitivity,或者直接退出应用程序.我之前的一般操作是按返回键,或者直接按home键直接返回,其实这两种操作都没有关闭当前应用程序,没有释放系统资源。每次退出界面之后应用程序还在运行,今天查了下资料终于把这个问题给解决了,网上提供了几种方法,我吸收了下面这个自认为简单易懂的方法,将下面SysApplication这个类复制到工程里面,然后在每个Acitivity的oncreate方法里面通过SysApplication.getInstance().addActivity(this); 添加当前Acitivity到ancivitylist里面去,最后在想退出的时候调用SysApplication.getInstance().exit();可直接关闭所有的Acitivity并退出应用程序。
      
Android按两次返回键,退出应用程序
  当我们按返回键时,都只是退出当前的activity,并不是退出整个应用程序,所以在这里我们试用一下方法退出应用程序;
        private long mExitTime ; //退出时间 
   //捕捉按键 
@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if(keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0){ 
        if ((System.currentTimeMillis() - mExitTime) > 2000 ) { 
             
            Toast.makeText(this, "再按一次退出应用程序", Toast.LENGTH_SHORT).show(); 
            mExitTime = System.currentTimeMillis(); 
        }else{ 
            SysApplication.getInstance().exit(); 
        } 

        return true; 
    } 
     return super.onKeyDown(keyCode, event); 

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<Activity> mList = new LinkedList<Activity>();
    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();
    } 
}
在应用程序里面 的activity的oncreate里面添加SysApplication.getInstance().addActivity(this)如:


public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
SysApplication.getInstance().addActivity(this);
}



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics