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没了,广播就发不出来了

android开发细节

 

6、Android TextView自动换行文字排版参差不齐的原因及处理:里面有数字、中文标点符号时,排版容易混乱

     解决办法: http://blog.****.net/gaojiaxingde/article/details/38225545

 

7、网络请求url拼接问题

android开发细节

 

8、打印方法的堆栈调用,可以看到具体哪个方法哪一行调用了此方法

  1. Log.d(TAG,Log.getStackTraceString(new Throwable()));