• java.lang.RuntimeException: Handler (com.***.behavior.BEvent$1) {421bca80} sending message to a Hand


    java.lang.RuntimeException: Handler (com.***.behavior.BEvent$1) {421bca80} sending message to a Handler on a dead thread

    它告诉你,你往死了的进程发了一个消息,然后没有办法执行。

    我的代码错在这里:

    sHandler.post(runnable);

    handler虽然不为空,(静态的),但是它所在的进程已经死了(推出了程序),所以你post 就会出现上面的警告。我们看下post源码:

        /**
         * Causes the Runnable r to be added to the message queue.
         * The runnable will be run on the thread to which this handler is 
         * attached. 
         *  
         * @param r The Runnable that will be executed.
         * 
         * @return Returns true if the Runnable was successfully placed in to the 
         *         message queue.  Returns false on failure, usually because the
         *         looper processing the message queue is exiting.
         */
        public final boolean post(Runnable r)
        {
           return  sendMessageDelayed(getPostMessage(r), 0);
        }

    The runnable will be run on the thread to which this handler is
    * attached.
    所以 进程死了,就没有办法运行了。

    总结:

    1.代码没执行,记得看logcat的警告。
    logcat的error,会直接crash.
    warn 代码没执行,或者其他的问题,都会warn.
    2.android程序退出了,但是进程没有杀死。
    所有的静态变量,暂时还保存着。

  • 相关阅读:
    2021-07-12 部分集训题目题解
    2021-07-09/11 部分集训题目题解
    k8s删除Terminating状态的命名空间
    yum命令安装jenkins
    Jenkins构建docker镜像
    jenkins获取当前构建任务的构建人
    Kubernetes kubeconfig配置文件
    K8S中使用gfs当存储
    人类视觉系统对颜色和亮度的感知
    荧光的应用之全内反射荧光显微镜(TIRFM)
  • 原文地址:https://www.cnblogs.com/caoxinyu/p/10568668.html
Copyright © 2020-2023  润新知