杀死全部的Activity,退出当前程序
来源:互联网 发布:2016年餐饮业数据分析 编辑:程序博客网 时间:2024/05/16 09:14
杀死全部的Activity,退出当前程序
首先说明finish()杀死的只是当前的Activity,并不是全部的Activity
方法一:Dalvik VM的本地方法
1、android.os.Process.killProcess(android.os.Process.myPid()) 获取PID,目前获取自己的也只有该API,否则从/proc中自己的枚举其他进程吧,不过要说明的是,结束其他进程不一定有权限,不然就乱套了。
2、System.exit(0) 常规java、c#的标准退出法,返回值为0代表正常退出
方法二:
(1)创建一个ActivityCollector.java,此类用作收集和销毁activity的公共类
public class ActivityCollector { public static List<Activity> activities = new ArrayList<Activity>(); public static void addActivity(Activity activity) { activities.add(activity); } public static void removeActivity(Activity activity) { activities.remove(activity); } public static void finishAll() { for (Activity activity : activities) { if (!activity.isFinishing()) { activity.finish(); } } }}
(2).创建一个BaseActivity.java基类,项目中的所有activity都继承此类,调用上面类的方法就可以。
public class BaseActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); ActivityCollector.addActivity(this); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); ActivityCollector.removeActivity(this); }
(3)让A, B, C这三个activity分别去继承BaseActivity.java
(4)只需要调用ActivityCollector.java中的finishAll()方法,就可以结束全部Activity了。
方法三、根据Activity的声明周期
Android的窗口类提供了历史栈,我们可以通过stack的原理来巧妙的实现
这里我们在A窗口打开B窗口时在Intent中直接加入标志Intent.FLAG_ACTIVITY_CLEAR_TOP
这样开启B时将会清除该进程空间的所有Activity。
//在A窗口中使用下面的代码调用B窗口 Intent intent = new Intent(); intent.setClass(MainActivity.this, otherActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); //注意本行的FLAG设置 startActivity(intent); //在B窗口中调用finish()就全部结束掉了
0 0
- 杀死全部的Activity,退出当前程序
- android程序退出当前activity的方法
- android程序退出当前activity的方法
- android程序退出当前activity的方法
- android程序退出当前activity的方法
- android程序退出当前activity的方法
- 程序退出当前activity的方法
- android程序退出当前activity的方法
- android程序退出当前activity的方法
- 杀死当前进程,完全退出程序
- 两种退出android程序全部activity的方法
- Android程序中有多个Activity时的可全部退出方法
- 关闭当前activity退出程序
- Activity杀死进程退出
- WPF关闭当前程序(全部窗体并退出程序)
- android 退出全部activity的方法
- android在当前activity退出整个程序
- MyApplication退出时退出全部Activity的通用类
- java 注解——Annotations Basics
- 消息称新MacBook暂时不会采用电子墨水键盘
- python学习(3)输入和输出
- Note背后
- 算法一:字符串的模式匹配
- 杀死全部的Activity,退出当前程序
- [Lintcode] Longest Substring Without Repeating Characters 最长无重复字符的子串
- 认识正则表达式
- HTML1
- 苹果“hello again”发布会只有笔记本电脑
- 多平台工程生成工具CMAKE如何创建VS工程组——folder属性
- Error:Configuration with name 'default' not found. 解决办法
- 用python获取教室人数(粗糙版)
- activity注册 android:theme="@android:style/Theme.DeviceDefault.Dialog" 报错