1安卓笔记 异常捕捉

在程序崩溃的时候 ,捕捉异常

步骤  首先在 activity的oncreat中调用  Thread.setDefaultUncaughtExceptionHandler(new DefaultExceptionHandler( this.getApplicationContext(),crashInterface)); 
        实现一个继承UncaughtExceptionHandler的子类

 1 public class DefaultExceptionHandler implements UncaughtExceptionHandler {
 2
 3    private Context act = null;
 4    crashInterface crashInterface;
 5    @Override
 6    public void uncaughtException(Thread arg0, Throwable arg1) {
      Intent sIntent=new Intent(act , CrashActivity.class);
27        sIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//必须带上
28        act.startActivity(sIntent);
29 //       crashInterface.finsh();
30  //此处异常
31        return;
32    }
33
34    public DefaultExceptionHandler(Context act,crashInterface  crashInterface) {
35         this.crashInterface=crashInterface;
36        this.act = act;
37     }  

47 }

在需要捕获异常的activity 中oncreat

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        view= getLayoutInflater().inflate(R.layout.activity_main, null);  

        view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION|View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
        setContentView(view);

        crashInterface  crashInterface=new crashInterface() {

            @Override
            public void finsh() {
                // TODO Auto-generated method stub
                finish();
                Process.killProcess(Process.myPid());

            }
        };
        Thread.setDefaultUncaughtExceptionHandler(new DefaultExceptionHandler( this.getApplicationContext(),crashInterface));
    }
时间: 2024-10-18 07:24:06

1安卓笔记 异常捕捉的相关文章

Java线程学习笔记(二) 线程的异常捕捉

线程异常的捕捉: 正常的情况下,我们在main()方法里是捕捉不到线程的异常的,例如以下代码: public class ExceptionThread implements Runnable{ @Override public void run() { throw new NullPointerException(); } public static void main(String[] args) { ExecutorService executorService = Executors.n

【安卓笔记】仿猎豹清理大师波浪效果

先来看效果: 实现方式----->自定义控件 核心代码: package com.example.wavedemo1; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.os.Handler; import

(插播)unity的 异常捕捉和 ios Android 崩溃信息的捕捉。

最近 做些准备性得工作和有意思的事情.所以最近做了一个适合ios和android 错误信息捕捉的unity插件. 两个功能,app崩溃也就是闪退 是开发者 很头疼的一件事,还有就是一些莫名得错误 有时候也会困扰着我们.现在,unity已经封装得挺好了,及时出现数组越界,和空对象这样严重得错误也不会崩溃,听着挺好,但是这给开发者带了很多烦恼啊.因为有时候可能出错了 你要跟就不知道 ,在什么地方出得错误啊.所以我们要想办法去解决这个问题. 我们都知道及时app崩溃,其实后台还是在运行得 只不过是 到

iOS开发——错误总结&异常捕捉

异常捕捉 1 有时应用崩溃,而日志中的输出信息太少,无法定位问题,这是最头疼的事情,尤其很累的时侯,已经想不起来刚才改过什么了,这就叫做无耐. 2 3 工欲善其事,必先利其器,下面的方法可以给多些信息,让你看到堆栈执行顺序,在哪里崩溃的,也就能大概给个思路,确定问题的症结. 4 5 在 AppDelegate.m 类实现之前加入: 6 7 8 9 void UncaughtExceptionHandler(NSException *exception) { 10 11 // 获取异常相关信息 1

【安卓笔记】抽屉式布局----DrawerLayout

效果如下: DrawerLayout来自support.v4包,所以不用考虑兼容性问题.其次,这种布局类似风靡一时的侧滑菜单,但是比侧滑菜单轻巧许多. 下面介绍这种布局的使用方式. 1.在你的项目中导入support.v4包. 2.编辑一个布局,根节点为android.support.v4.widget.DrawerLayout,此节点下只允许有两个子节点,第一个为将来主页面的内容,第二个节点即为"抽屉"内容,通常是一个ListView.比如: <android.support.

【安卓笔记】通过发送特定的短信远程控制手机

实现效果: 1.发送指令#*location*#,可以远程获取到手机的地理位置(经纬度),并以短信的形式返回. 2.发送指令#*locknow*#,可以远程锁屏并设置锁屏密码. 实现原理: 1.注册广播接受者,监听手机收到的短信,并对符合要求的特定短信进行拦截和处理. 2.通过LocationManager获取地理位置. 3.使用DevicePolicyManager实现锁屏.设置锁屏密码等操作. 步骤: 1.创建一个可以获取地理位置的工具类: package cn.edu.chd.mobile

Android全局异常捕捉

// 定义自定义捕捉 package com.xiaosw.test; import java.io.File; import java.io.FileOutputStream; import java.io.FilenameFilter; import java.io.PrintWriter; import java.io.StringWriter; import java.io.Writer; import java.lang.Thread.UncaughtExceptionHandler;

解决安卓TextView异常换行,参差不齐等问题

Pull 解析器简介 Pull 解析器的运行方式与 SAX 解析器相似.它提供了类似的事件,如: 开始元素和结束元素事件,使用xmlPullParser.next() 可以进入下一个元素并触发相应事件.跟 SAX 不同的 是, Pull 解析器产生的事件是一个数字,而非方法,因此可以使用一个 switch 对事件进行处理.当元素开始解析时,调用 parser.nextText() 方法可以获取下一个 Text 类型节点的值. Pull解析器的源码及文档下载网址:http://www.xmlpul

关于SQLServer2005的学习笔记—异常捕获及处理

转自:http://blog.csdn.net/baoqiangwang/article/details/5395874 SQLServer2005 提供了类似于 C# 和 C++ 语言中的异常处理的错误处 理机制. Transact-SQL 语句组可以包含在 TRY 块中.如果 TRY 块内部发生错误,则会将控 制传递给 CATCH 块中包含的另一个语句组. 相关错误消 息如下: ERROR_NUMBER()返回错误号. ERROR_SEVERITY() 返回严重性. ERROR_STATE(