博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android进阶之关闭所有activty
阅读量:4880 次
发布时间:2019-06-11

本文共 2253 字,大约阅读时间需要 7 分钟。

 

博客出自:http://blog.csdn.net/liuxian13183,转载注明出处! All Rights Reserved ! 

关闭所有Activity有以下几种方法:

 

1、Intent startMain = new Intent(Intent.ACTION_MAIN);

startMain.addCategory(Intent.CATEGORY_HOME);// 必须,没有这个你可以看看效果~
currentActivity.startActivity(startMain);

System.exit(0);// 关键,如果换成 finish()效果表面一样,但实际并无关进程,0代表正常关闭。

2、<uses-permission android:name="android.permission.RESTART_PACKAGES"></uses-permission>    

ActivityManager am = (ActivityManager)getSystemService  (Context.ACTIVITY_SERVICE);   

            am.restartPackage(getPackageName()); 
        这个方法,系统会将,该包下的 ,所有 进程,服务,全部杀掉。

getPackageManager().clearPackagePreferredActivities("packageName");

同时,结合这条语句使用。

3、这两种方法也可以结合使用。

  1. android.os.Process.killProcess(android.os.Process.myPid())    //获取PID  
 
  1. Intent intent = new Intent();   
  2. intent.setClass(Android123.this, CWJ.class);   
  3. intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);  //注意本行的FLAG设置  
  4. startActivity(intent);  
重要知识点:
writeThread.setDaemon(true);// 将该线程标记为守护线程或用户线程。

// 当正在运行的线程都是守护线程时,Java 虚拟机退出。该方法必须在启动线程前调用。

4、

ExitApplication.getInstance().addActivity(this);

    //单例模式中获取唯一的ExitApplication实例     public static ExitApplication getInstance(){       if(null == instance){    instance = new ExitApplication();    }    return instance;      } 

    //添加Activity到容器中     public void addActivity(Activity activity){    activityList.add(activity);     }     //遍历所有Activity并finish     public void exit(){

   for(Activity activity:activityList){    activity.finish();    }   System.exit(0);     } 

5、见一同事的退出方法

// 返回按鈕	public boolean onKeyDown(int keyCode, KeyEvent event) {		if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {			new AlertDialog.Builder(CalendarActivity.this)					.setTitle("提示")					.setMessage("确定退出程序吗?")					.setPositiveButton("确定",							new DialogInterface.OnClickListener() {								@Override								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(which);								}							}).setNegativeButton("取消", null).show();			return true;		}		return super.onKeyDown(keyCode, event);	}

转载于:https://www.cnblogs.com/fengju/archive/2011/11/24/6174518.html

你可能感兴趣的文章
C# 读取WAV文件(详细)
查看>>
web服务器,验证码,Xftp使用方法
查看>>
Ubuntu 16.04.6 + Win10 双系统时间错误且不一致
查看>>
ora-12899解决方法
查看>>
(8)关于flexbox的一些想法。
查看>>
一台机子同时启动两个相同版本的tomcat
查看>>
剑指offer——python【第29题】最小的K个数
查看>>
带你入门代理模式/SpringAop的运行机制
查看>>
eclipse对离线python的环境搭建
查看>>
要找工作啦
查看>>
OpenCV imshow无法显示图片
查看>>
js线程&定时器
查看>>
路漫漫其修远兮
查看>>
java.lang.IllegalStateException: getOutputStream() has already been cal
查看>>
越狱机器SSH安装与使用
查看>>
使apache解析域名到目录的方法
查看>>
了解Onunload,onbeforeunload事件
查看>>
sqlalchemy相关知识
查看>>
Ubuntu下搜狗输入法乱码
查看>>
计算机网络●通信协议
查看>>