android开发之程序异常捕捉处理

今天这篇Blog是我在逛CSDN时,看到一篇关于《android程序异常捕捉处理》,我觉得写得挺好!所以基本就Copy了,为什么本人会认为这篇Blog会挺好呢?因为这个问题是很多初学者甚至大神有时去面试时,面试官会问的一个问题!问题不难,难的就是记不住!下面我就给大伙分享分享这个问题应该如果处理?

/**
 * @类名:CatchHandler
 * @类描述:监测程序闪退,直接注销掉整个程序,然后重启回到主界面
 * @修改人:
 * @修改时间:
 * @修改备注:
 * @版本:
 */
public class CatchHandler implements UncaughtExceptionHandler {
    private Context mContext;
    private static CatchHandler mCatchHandler = new CatchHandler();

    private CatchHandler() {}

    public static CatchHandler getInstance() {
        return mCatchHandler;
    }

    /**
     * @方法说明:初始化数据
     * @方法名称:init
     * @param context
     * @返回值:void
     */
    public void init(Context context) {
        mContext = context;
        Thread.setDefaultUncaughtExceptionHandler(this);
    }

    @Override
    public void uncaughtException(Thread thread, Throwable ex) {
        /**如果是主线程出现异常闪退**/
        if (thread.getName().equals("main")) {
            ToastException(thread, ex);
            try {
                /**时间休眠的越小,那你看到黑屏的时间也越小。**/
                Thread.sleep(300);
            } catch (InterruptedException e) {
                Thread.currentThread().interrupt();
            }

            /**这里调用的是我程序中重写的退出程序的方法**/
            //MyApplication.outApp();
            android.os.Process.killProcess(android.os.Process.myPid());
            System.exit(0);
        } else {
            handleException(thread, ex);
        }
    }

    /**
     * @方法说明:弹出土司框,这个土司必须要在线程中弹出,不然会报错
     * @方法名称:ToastException
     * @param thread
     * @param ex
     * @返回值:void
     */
    private void ToastException(final Thread thread, final Throwable ex) {
        new Thread() {
            @Override
            public void run() {
                 Looper.prepare();
                 Toast.makeText(mContext, "×××出现异常,操作失败!", Toast.LENGTH_LONG).show();
                 Looper.loop();
            }
        }.start();
    }


    /**
     * @方法说明:异常处理方法
     * @方法名称:handleException
     * @param thread
     * @param ex
     * @返回值:void
     */
    private void handleException(final Thread thread, final Throwable ex) {
        /**这里我是当出现了异常,然后我就跳转到我的登录界面。还是看大家的需要**/
        Intent intent = new Intent(mContext, MyActivity.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        mContext.startActivity(intent);
    }
}

其实,开发中还得看你们的要求,一般,如果在客户端使用的情况下,最好是能把报错的信息,机型等信息,保存到本地,然后推送到服务器,把这些信息一一统计起来,那对于开发人员来说就更好的优化自己的软件了。

免责声明:转载http://blog.csdn.net/u011993368/article/details/43760131

热点推荐:http://blog.csdn.net/xiaanming/article/details/9344703

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 编写 Android 应用程序实现无线局域网络 IP 摄像头与 TP-Link 网络摄像头之间的连接是可行的。接下来,我将概括性地介绍如何实现这一过程。 首先,你需要使用 Android Studio 这样的集成开发环境来创建一个新的 Android 项目。然后,下载 TP-Link 网络摄像头官方提供的开发文档以了解其 API 和相关功能。根据文档所提供的信息,你可以开始编写和实现摄像头连接的相关代码。 在 Android 应用程序中,你需要导入一些必要的库和依赖项,以便于处理与网络摄像头通信的各种任务。例如,你可以使用 Java 的网络套接字库与摄像头建立连接,并通过 HTTP 请求来获取图像和视频流。另外,你还可以使用图像处理库来处理和展示从摄像头获取到的图像。 接下来,你可以创建一个适当的用户界面来展示摄像头实时图像和提供用户交互功能。你可以使用 Android 的标准视图控件,如 ImageView 和 Button,来实现这些功能。你还可以根据需要添加一些额外的功能,如图像捕捉、录像等。 在与 TP-Link 网络摄像头通信的过程中,你需要确保应用程序能够处理网络连接异常、超时等情况。为此,你可以使用 Java 中的异常处理机制,并在适当的地方添加错误处理代码。 最后,你需要构建并部署你的应用程序Android 设备上进行测试。在测试过程中,你可以检查是否成功连接并获取到摄像头返回的图像或视频流。如果发现问题,你可以根据错误日志和调试信息进行排查和修复。 总而言之,通过使用 Android Studio 和相关开发文档,你可以编写一个能够连接 TP-Link 网络摄像头的 Android 应用程序。这个应用程序可以让用户实时监视摄像头的图像,并提供一些额外的功能。 ### 回答2: 在Android平台上编写无线局域网络IP摄像头程序IPC TP-Link Camera可以通过以下步骤实现: 首先,需在Android项目中添加TP-Link官方提供的SDK库。这个库提供了访问IP摄像头的一些基本功能,如实时视频流的接收和解码、图像截取等。通过引入这个库,可以很方便地进行相关开发。 然后,需要在Android应用程序中设置相关的权限和配置。在AndroidManifest.xml文件中,可以添加一些必要的权限,例如:访问网络权限、WIFI状态权限等。另外,还可以通过代码设置TP-Link摄像头的IP地址、端口号等配置信息,以便与相应的设备进行通信。 接着,需要编写相关的代码来实现与TP-Link IP摄像头的交互。可以创建一个类来封装与摄像头的网络连接和通信逻辑。可以使用Android提供的网络API,如HttpURLConnection或OkHttp,与摄像头建立TCP或HTTP连接,并发送指令获取视频流或进行其他操作。 在接收视频流方面,可以使用SurfaceView或TextureView来展示实时视频。通过解码接收到的视频数据,并将解码后的帧渲染到界面上,可以实现实时的视频展示效果。 此外,还可以添加一些用户交互的功能,如图像截取、录像、移动镜头控制等。这些功能可以通过发送相应的指令给摄像头,并接收对应的响应来实现。 最后,在完成开发后,可以使用Android Studio等工具进行调试和打包,最终将应用程序安装到Android设备上。在设备上运行应用程序时,可以通过调用封装好的API接口,与TP-Link IP摄像头进行交互,实现所需的功能。 总之,通过添加TP-Link SDK库并编写相关代码,可以在Android开发出一个实现无线局域网络IP摄像头功能的应用程序。以上是大致的步骤和思路,具体的实现可能会因具体情况和需求而有所差异。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值