android 中java编程的意外事件处理

分类:androidJAVA 2333人阅读 评论(12) 收藏 举报

不管你信不信,即使多么熟练编程的人员在coding的时候都会出现意想不到的bug。在上篇文章中我曾提到,bug的造成是多个方面的综合结果,有些bug是可以修复的,但是有些逻辑上的bug要修复可不是那么容易的事情,就像我们做错了一件事情,如果不去从根本上改正就会犯更大的错误一样,有时候bug也是一个积累的过程。

在经历了android上的开发之后,我改变了我最初的想法,让我认识到了即使再简单的开发平台,开发一款产品都需要一个严密的逻辑认证,认证之后再进行开发,不仅能提高代码的生产效率,还能减少很多产品的bug。

下面是我遇到的一些基本简单的bug,但是修复却花费了一段时间:

(1)android.view.WindowManager$BadTokenException: Unable to add window --

token [email protected] is not valid; is your activity

running?

是由于有activity时依附于另一个activity的,当被依附的activity产生错误的时候,该activity没有了靠山而产生错误。对于这个错误

还没有根本的解决办法,唯一的办法就是改变该activity依附于另一activity的事实,将其放入另一activity。

(2)01-13 17:21:04.408: WARN/System.err(20476): java.net.SocketException: The connection was reset

原因是由于没有关闭socket链接造成的。

(3)java.net.SocketTimeoutException: The operation timed out

该问题是由于没有捕获链接超时的异常导致的错误。需要在代码后面

catch(SocketTimeoutException e){

sendMessage(FILE_DOWNLOAD_ERROR, e);

}

(4)android.view.WindowLeaked: Activity com.*.* has leaked window

(5)07-13 14:31:56.962: INFO/global(1194): Default buffer size used in BufferedWriter constructor. It would be better to be explicit if an 8k-char buffer is required.
07-13 14:31:57.012: ERROR/AndroidRuntime(7141): java.lang.IllegalArgumentException: Activity#onCreateDialog did not create a dialog for id 110
07-13 14:31:57.012: ERROR/AndroidRuntime(7141): at android.app.Activity.createDialog(Activity.java:869)

无法显示出dialog。代码如下所写:

private static final int SEARCH_DIALOG_Progress = 110;
protected Dialog onCreateDialog(int id){
switch(id){
case SEARCH_DIALOG_Progress:
search_progressDlg = new ProgressDialog(this);
search_progressDlg.setTitle("search");
search_progressDlg.setMessage("is in searching! please wait!");
search_progressDlg.setOwnerActivity(getParent());
search_progressDlg.setOnKeyListener(new OnKeyListener(){
@Override
public boolean onKey(DialogInterface dialog, int keyCode,
KeyEvent event){
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
mManager.mCancelDownload = true;
if(null != search_progressDlg)
search_progressDlg.dismiss();
Util.d(TAG, "keycode_back");
return true;
}
return false;
}
});
return null; //应该是return search_progressDlg.
}
return null;
}

原因是在创建了progressDialog后没有返回。

更多相关文章

  1. 我的Android NDK之旅(五),在Mac上用eclipse手动编写代码向android开
  2. Android 混淆代码学习以及Android加密工具--APKProtect的使用
  3. android代码实现免提功能
  4. 【Android应用开发】Android Studio 错误集锦 -- 将所有的 AS 错
  5. CentOS 下载 Android 源代码。
  6. Android代码总结,Sdcard和图片相关

随机推荐

  1. 学习的道与术
  2. django模型使用
  3. 闲聊僵尸进程
  4. 如何让学到的运维知识系统化?
  5. 失眠三重天
  6. 3-8(单链表相关算法习题+双链表)
  7. C++入门第一课(命名空间;输入输出;缺省参数;
  8. 闲聊微服务之服务注册中心
  9. php中的类及trait
  10. 第十周作业