android 退出程序写法小结

退出整个应用:

//关闭当前activity方法一
       finish();

//关闭当前界面方法二
       android.os.Process.killProcess(android.os.Process.myPid());

//关闭当前界面方法三
       System.exit(0);

//关闭当前界面方法四
       this.onDestroy();

  1.制造抛异常导致整个程序退出

  2.将所有的activity放入到一个list中,然后在需要退出的时候,将所有的activity,finish掉

import java.util.LinkedList;
import java.util.List;
import android.app.Activity;
import android.app.Application;
/**
* 一个类 用来结束所有后台activity
* @author Administrator
*
*/
public class SysApplication extends Application {
//运用list来保存们每一个activity是关键
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);
}
//关闭每一个list内的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();
}
}

  3.通过广播来完成退出功能,具体实现过程是这样的:在每个Activity创建时(onCreate时)给Activity注册一个广播接收器,当退出时发送该广播即可。大概的代码如下:

@Override

protected void onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

       IntentFilter filter = new IntentFilter();

       filter.addAction("finish");

       registerReceiver(Receiver, filter);

}

private BroadcastReceiver Receiver = new BroadcastReceiver() {

    @Override

    public void onReceive(Context context, Intent intent) {

           if("finish".equals(intent.getAction())) {

              Log.e("#########", "I am " + getLocalClassName()

                     + ",now finishing myself...");

              finish();

       }

    }

};
时间: 2024-11-05 02:31:58

android 退出程序写法小结的相关文章

Android适配方案小结(三)

在Android适配方案小结(一).(二)中,我们了解了一些基本概念. 那么在具体开发中,我们应该注意什么呢. 首先,我们必须要知道,其实适配的关键在于两点: (1)不同分辨率设备的适配,这点在单位的使用上用dp.sp以及图片资源存放于不同的drawable文件夹就可以解决问题: (2)不同尺寸的适配,这点主要靠将相关值以及布局文件放置于不同的文件夹中来解决. 2.1 values文件夹 可以在工程下创建不同的values文件夹:values-sw480dp, values-sw600dp, v

06. 父子节点(树)遍历写法小结

原文:06. 父子节点(树)遍历写法小结 对于树/图的遍历,通常有2种算法来实现:迭代(Iteration)和递归(Recursion),迭代是利用循环反复取值/赋值的过程:递归则是反复自己调用自己来获得最终结果.SQL Server里的递归有32层嵌套限制,目的在于防止代码进入死循环,除非使用提示OPTION (MAXRECURSION 0). 测试数据: if OBJECT_ID('city') is not null drop table city GO create table city

03. 行列转换写法小结

原文:03. 行列转换写法小结 行列转换,通常有2种方法,一是CASE WHEN/UNION:一是PIVOT/UNPIVOT.对于行值或列数不固定的情况,需要用动态SQL. 一. 行转列 --drop table RowToCol create table RowToCol ( ID int, Code varchar(10), Value int ) Go insert RowToCol select 1,'Item1',1000 union all select 1,'Item2',1000

07. 分页写法小结

原文:07. 分页写法小结 分页的实现方式有这几种:1. 在前台程序中,将所有的记录都读到本地,前台程序通过游标在数据集中上下移动,数据量大的话,性能很差,不推荐:2. 前台程序请求某一页数据时,到数据库做一次查询,返回符合条件的相应记录,这也是目前常用的方法:3. 对方式2的改进,当请求某一页时,同时将前后几页一并返回,用户翻页时就不需要反复请求数据库了. 对于2,3的实现,随着SQL Server版本的升级,常用的方法有三种:TOP,ROW_NUMBER,OFFSET/FETCH NEXT.

Android退出程序(下)——利用广播机制

概述: 基于上一篇博客<Android退出程序(上)--单例模式>的学习,我们知道了如何利用单例和循环遍历的方式来退出我们的应用程序.这篇博客则要从另一个角度来解决问题--广播.即是,接收到一个关闭Activity的广播时,就去关闭当前Activity. 类图展示及说明: 从上面的类图中可以看到这里做了一个处理,而这个处理是学习面向对象的Coder要必须掌握的.这里就是对Activity进行了一个扩展--BaseActivity.如果我们要对每个Activity进行添加内部ExitappRec

04. 字符串合并与拆分写法小结

原文:04. 字符串合并与拆分写法小结 一. 字符合并 if OBJECT_ID('ConcatStr') is not null drop table ConcatStr GO create table ConcatStr ( ID int, Code varchar(10) ) GO insert into ConcatStr select 1,'XXX' union all select 1,'YYY' union all select 2,'PPP' union all select 2

Android Camera 使用小结。两种方法:一是调用系统camera app,二是自己写camera程序。

源文链接:http://www.cnblogs.com/franksunny/archive/2011/11/17/2252926.html Android Camera 使用小结 Android手机关于Camera的使用,一是拍照,二是摄像,由于Android提供了强大的组件功能,为此对于在Android手机系统上进行Camera的开发,我们可以使用两类方法:一是借助Intent和MediaStroe调用系统Camera App程序来实现拍照和摄像功能,二是根据Camera API自写Came

CSS浏览器兼容性写法小结

CSS浏览器兼容性写法小结 *        , ie6,ie7可以识别: _和- ,  ie6可以识别: !important  ,表示高优先级,ie7及以上,firefox都支持,ie6认识带!important的样式属性,但不认识!important的优先级: -webkit- ,针对safari,chrome浏览器的内核CSS写法 -moz-,针对firefox浏览器的内核CSS写法 -ms-,针对ie内核的CSS写法 -o-,针对Opera内核的CSS写法

Android自动化问题小结

Android 自动化case小结: 1.jenkins  job  运行   Android 自动化case     出现 com.meilishuo.testcase.profile.AlbumShare:INSTRUMENTATION_RESULT: shortMsg=keyDispatchingTimedOutINSTRUMENTATION_RESULT: longMsg=Timed out while dispatching key eventINSTRUMENTATION_CODE: