android开发细节
1、 fragment切换后edittext无法获取焦点的问题
观察到一个现象,点击通知栏后,再点击edittext后就能输入内容了,也就是说当焦点转移到系统上,再从系统转回来的时候,焦点找回来了,于是猜想可能当我从fragmentA切到fragmentB的时候,焦点任然在当前的Activity的FragmentA中。也就是说我调用的edittext.requestFocus(),并没有把焦点转移到当前的fragment中。问题就出来edittext.requestFocus(),requestFocus()最开始是在oncreateView()中调用的,这个时候edittext可能还没有完全绘制完成。于是尝试放到当前的Fragment的OnResume()方法中。问题得到了解决。
2、webview里面的js加载的内容如果是调用了android原生的控件,那么webview只能在布局文件里面写,不能代码动态的new,否则程序会崩溃
3、为了解决fragment里面放surfaceview,第一次黑屏的问题:
getWindow().setFormat(PixelFormat.TRANSLUCENT);
4、完美解决 trying to use a recycled bitmap [email protected]的异常
http://blog.****.net/vipqiangqiang/article/details/60583289
(1)bitmap.recycle()后,再次创建的时候用BitmapFactory.decodeResource(context.getApplicationContext().getResources(), res)
5、广播发送的问题
(1) context.sendBroadcast(),普通的广播发送,是异步的;
(2) 系统时钟发广播 也是异步的
Intent intent = new Intent(Consts.ACTION_OPEN_APP);
PendingIntent restartIntent = PendingIntent.getBroadcast(getContext(), 0, intent, PendingIntent.FLAG_ONE_SHOT);
//退出程序
AlarmManager mgr = (AlarmManager)getContext().getSystemService(Context.ALARM_SERVICE);
mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 1000, restartIntent); // 1秒钟后重启应用
(3) 如果是退出应用前 发重启程序的广播,用系统时钟发,用context发的话,发广播又是异步的,当程序退出了,context没了,广播就发不出来了
6、Android TextView自动换行文字排版参差不齐的原因及处理:里面有数字、中文标点符号时,排版容易混乱
解决办法: http://blog.****.net/gaojiaxingde/article/details/38225545
7、网络请求url拼接问题
8、打印方法的堆栈调用,可以看到具体哪个方法哪一行调用了此方法
-
Log.d(TAG,Log.getStackTraceString(new Throwable()));