zoukankan      html  css  js  c++  java
  • android在学习——程序的退出

    我们做的android程序一般不会只有一个界面的,不同的界面往往就会有好多的activity,如何退出android程序呢?退出当前的activity吗?它又会产生其他的界面,没有达到真正的退出。要退出就要退出所有的activity否则就要先清除所有的activity记录,再退出当前activity。

    我选择了后者,因为如果要退出所有的activity必定比较麻烦,需要循环等等。经过网上的资料,后者则需要一句intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);  就能清除activity的记录,然后跳转到另一个界面在onresum的时候判断一下,就能关闭了。

    好了废话不多说了,看代码。

     //提示是否退出
    public void isExit(){
    AlertDialog.Builder alertbBuilder = new AlertDialog.Builder(this);
    alertbBuilder.setIcon(R.drawable.infoicon).setTitle("提示...").setMessage("你确定要离开客户端吗?");
    alertbBuilder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
    Intent intent = new Intent();
    intent.putExtra("exit", "exit");//添加参数,这是退出的依据
    intent.setClass(MenuActivity.this, loginActivity.class);//跳转到login界面,根据参数退出
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); //注意本行的FLAG设置,clear所有Activity记录
    startActivity(intent);
    }
    });
    alertbBuilder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
    dialog.cancel();
    }
    }).create();
    alertbBuilder.show();
    }

    下面看看loginActivity中的相应代码:

    @Override
    protected void onResume() {
    super.onResume();
    Intent intent = getIntent();
    Bundle bundle = intent.getExtras();
    if(bundle.getString("login")!=null&&!bundle.getString("login").equals("login")){//已经登陆过了
    Intent intent2= new Intent();
    intent2.setClass(loginActivity.this, MainActivity.class);
    startActivity(intent2);
    }else if(bundle.getString("exit")!=null&&bundle.getString("exit").equals("exit")){//需要退出
    int nPid = android.os.Process.myPid();//获取当前的id
    android.os.Process.killProcess(nPid);//结束activity
    }else{
    }
    }



  • 相关阅读:
    java中string与json互相转化
    UVa 10125
    IOS开发之蘑菇街框架
    从头认识设计模式-策略模式-03-思考过程二:在每个类里面单独添加方法或者添加接口
    使用spring-loaded开源项目,实现java程序和web应用的热部署
    矩阵高速幂专题(二)
    EBS 第一个项目 学习总结 ---- 发运模块
    关于App程序猿泡沫
    Go 语言编程
    jar运行main函数的方法
  • 原文地址:https://www.cnblogs.com/winxiang/p/2369571.html
Copyright © 2011-2022 走看看