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{
    }
    }



  • 相关阅读:
    关于云计算:IaaS的四个误解和四个猜想 浪峰小园子
    国外10个优秀的免费轻量级CMS系统 浪峰小园子
    Win8下80端口被System占用,造成Apache不能启动的解决办法 浪峰小园子
    [转载]基于内存数据库的分布式数据库架构何坤 浪峰小园子
    php短域名转换为实际域名函数 浪峰小园子
    [转载]苹果公司与分工原理 浪峰小园子
    PHPer的等级划分
    简单的无限分类树
    转换字符串编码
    php开启虚拟域名功能
  • 原文地址:https://www.cnblogs.com/winxiang/p/2369571.html
Copyright © 2011-2022 走看看