首页 > 代码库 > 幸运摇摇看项目总结

幸运摇摇看项目总结

    应用发布前总结下项目开发过程中遇到的技术和非技术的问题,虽然好几个人测试了很长一段时间,但是我还是担心会出什么差错。先总结非技术方面的。

非技术方面:
    1:还是文档,当往svn更新文档时,必须要先upate,然后修改,最后commit。提交文档时必须通过大家,让大家即时更新和了解更新的内容;
    2:当应用出现问题时,先不要说自己的没错,最好大家一起测一遍出错的功能,然后再下结论;
    3:整理自己的进度文档,并且系统测试时所有的问题也都要以文档的方式保存下来。
技术方面:
    1:这是令我印象最深刻的问题,当我用handler接收数据时用message.what中的数据分辨是处理哪些部分,非常有可能使用的公共字段与本Activity中使用的字段是一样的,比如
public void handleMessage(Message msg)
  {
   if(AccountInfoActivity.sSuccess==msg.what)
   {
            代码A
   }else if(AccountInfoActivity.sFail==msg.what)
   {
            代码B
   }else if(MainActivity.checkOK==msg.what)
   {
            代码C
   }
其中的AccountInfoActivity.sSuccess和MainActivity.checkOK可能会相等,所以当返回数据为MainActivity.checkOK也会只执行代码A。所以,在handler中使用的标记字段最好都统计存放在枚举类型中,如
public enum ApplicationFlag
 {
  sSuccess(1),sFail(2),//是否能跳转到主页面
  sSuccessRegister(3),sFailRegister(4),//是否注册成功
  sSuccessLocation(5),sFailLocation(6),//是否定位成功
  sCheckSuccess(7),sCheckFail(8);//检测手机号是否被注册过
  public int flag;
  private RegisterFlag(int flag)
  {
   this.flag=flag;
  }
 }

2:页面切换与网络请求方面的问题
在这篇文章中详细的介绍了。

3:两个令人头疼的问题是一起出现的,android只能单线程更新UI和使用onTuchListener时其中获得的eventX和eventY与相同页面中的组件位置的关系。我们的应用中有这样一个场景,切换到“页面A”时,显示的是一整屏的广告。广告页面可以上滑一半,在露出的一半中显示下图:

如果我直接改变广告页的layoutparams则,每次更新倒计时时广告页要闪一下,所以广告页上划我使用了动画。这时另一个问题出现了,其中的“分享”和“对号”按钮无法点击,所以我给广告页加了onTouchListener方法想用MotionEvent的坐标确定是点击的哪个按钮,但是当我获得“分享”和“对号”按钮的位置,此时在Y轴上的位置eventY与"分享".getBottom();获得的坐标差距非常大,而且分辨率越高的屏幕差别越大。最后使用WindowManager wm = getActivity().getWindowManager();使用int height = wm.getDefaultDisplay().getHeight();获得屏幕高度,然后判断在屏幕的几分之几处会触发分享”或“对号”按钮的事件。

4:获得ListView中的EditText文字
这应该是一个公共的问题,就是你不能直接通过editText.getText().toString()来获得EditText中的文字。需要使用TextWatcher来实现,这篇文章中总结过了。

5:同样是ListView的问题,我们把Adapter中的数据放入ListView时我们经常通过

if(convertView==null)
  {
   holder=new ViewHolder();
   convertView=inflater.inflate(R.layout.spinner_item, null);
   holder.text=(TextView)convertView.findViewById(R.id.text);
holder.button=(Button)convertView.findViewById(R.id.button); 
   convertView.setTag(holder);
  }else{
   holder=(ViewHolder)convertView.getTag();
  }
这样类似的代码重用资源,假如:holder.text开始是隐藏的,当我点击holder.button时让holder.text动画出现,再点一下holder.text消失。此时如果你复用convertView,点击第一个holder.button正常,但当点击第二时,第一个holder.text同样会出现动画然后消失。此时我的解决办法是把holder=(ViewHolder)convertView.getTag();去掉,每次都重新生成convertView。

幸运摇摇看项目总结