android – 从父活动中的子活动捕获异常

android – 从父活动中的子活动捕获异常,第1张

概述我一直在想,是否可以通过捕获活动中的崩溃来停止 Android应用中的崩溃. 说我在一个孩子活动的onCreate方法中造成致命异常,我能否捕获这个异常?或者将会崩溃,无论我尝试什么? 这是我的意思的一个例子: Main.java @Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(s 我一直在想,是否可以通过捕获父活动中的崩溃来停止 Android应用中的崩溃.

说我在一个孩子活动的onCreate方法中造成致命异常,我能否捕获这个异常?或者将会崩溃,无论我尝试什么?

这是我的意思的一个例子:

Main.java

@OverrIDeprotected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.ly_main);    // My Main activity starts    try{        // Call the next activity        Intent intent = new Intent(getApplicationContext(),Child.class);        startActivity(intent);    }catch(Exception e){        Log.wtf("Exception_WTF","Exception from child activity woohoo \n "+ e.toString());    }

Child.java

@OverrIDeprotected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.ly_child);    // Create exception... for scIEnce    int a = 0;    a = 1/a;}

这不行.孩子活动死亡,并带着父母.

是否可以通过startActivityForResult做到这一点?

谢谢,

编辑:我不需要崩溃数据,我只想知道如何避免应用程序崩溃.

环顾四周我发现:
Using Global Exception Handling on android

其中包括这一部分:

Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {        @OverrIDe        public voID uncaughtException(Thread paramThread,Throwable paramThrowable) {            Log.e("Alert","Lets See if it Works !!!");        }    });

让我记录uncaughtException,避免“崩溃”,但是,应用程序进入黑屏并停止响应…

编辑2:
经过很多阅读(感谢user370305)的线程How do I obtain crash-data from my Android application?

我已经到了一个死胡同,无论是处理uncaughtException,并调用defaultUEH.uncaughtException(paramThread,paramThrowable);所以应用程序崩溃,或者我不会调用defaultUEH.uncaughtException,应用程序不会崩溃,但不会响应…
有任何想法吗?

final Thread.UncaughtExceptionHandler defaultUEH = Thread.getDefaultUncaughtExceptionHandler();Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {    @OverrIDe    public voID uncaughtException(Thread paramThread,Throwable paramThrowable) {        Log.e("Alert","Lets See if it Works !!!");        defaultUEH.uncaughtException(paramThread,paramThrowable);    });
解决方法 自从 their own lifecycle以来,必须独立管理AndroID中的活动.因此,在生成它们的活动中捕获异常.

如果您的活动需要交互以返回到之前的用户活动,则完成捕获异常(子)的活动,并让具有结果知识的先前活动(父级).请参阅Starting Activities and Getting Results作为相互传达父母和儿童活动的方法.

总结

以上是内存溢出为你收集整理的android – 从父活动中的子活动捕获异常全部内容,希望文章能够帮你解决android – 从父活动中的子活动捕获异常所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1131908.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存