bug
来源:互联网 发布:js 构造对象的方式 编辑:程序博客网 时间:2024/04/29 23:41
快速点击启动两个相同的activity
- 用singleTop启动模式
真机测试log.i不显示
- 手机可能禁止了log日志的输出,例如华为,小米
全局捕获异常
- 有些异常不在log里面输出,程序直接崩溃,加上之后可以看异常信息
原理: 线程池在执行任务时捕获了所有异常,这样一来线程中所有的异常都无法捕获到抛出的异常。 即 try catch 捕获不到异常了。
jni
- jni:目录和 aidl一样,同样是naitive方法的报名完全一致才行
listview recycleview 的条目布局
一般用相对布局,线性布局可能有问题,如显示不全 颜色不对
ListView中notifyDataSetChanged()刷新数据不更新解决方法:
//usersList= query(......); usersList.clear(); usersList.addAll(query(......)); sAdapter.notifyDataSetChanged();
googlePlay
- 线程池管理里面 if else 结构: 和 if 结构 本来没有else,也就是不管条件满不满足都执行后面的代码,结果后面的代码写到else里面了,结果就不执行了…
重要知识点
ANR (application not response)应用程序无响应
解决应用程序无响应的方法,耗时的操作不要写在主线程。
1. 网络访问:要开启子线程执行。 handler+message
2. 耗时的操作:比如大文件的读写 , 要开启子线程。 handler+message
3. 多媒体播放:如果是视频文件或者网络文件资源 , 不要使用mediaPlayer.prepare();
使用 prepareAsync()异步准备。开启子线程去准备,不会阻塞主线程。
易犯错误
- 复制布局文件后修改时,确定是在新的文件中修改的,别把老文件改了….
奇怪的错误
- 报错定位到一行完全正确的语句:项目->clean一下再试试
byte[] b = new byte[1024];while((len=is.read())!=-1){//每次读取流中的数据之后同步把数据写入临时文件raf.write(b,0,len);
上面的错误在于is.read();没有把b传入; is.read(b);
如果onBind()没有返回中间人对象,这个方法是不会调用的
@Override public void onServiceConnected(ComponentName name, IBinder service) { // 把中间人对象强转PublicBusiness;调用Stub的方法转 pb = Stub.asInterface(service); }
adapter 中的findViewById要用创建的view调用
View view = View.inflate(HomeActivity.this, R.layout.home_list_item, null);ImageView ivItem = (ImageView) view.findViewById(R.id.iv_item);//view.findViewById
- 导包冲突(如果已经导入了OnClickListener包,这里就要写全称.
dialog.setSingleChoiceItems(items, 2, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } });
0 0