• 学前教育
  • 小学学习
  • 初中学习
  • 高中学习
  • 语文学习
  • 数学学习
  • 英语学习
  • 作文范文
  • 文科资料
  • 理科资料
  • 文档大全
  • 当前位置: 雅意学习网 > 语文学习 > 正文

    [Android系统的异步处理机制]异步机制

    时间:2019-04-25 03:38:09 来源:雅意学习网 本文已影响 雅意学习网手机站

      摘要:使用Android系统的AsynTask异步处理机制,可以很好地解决在移动应用中,由于带宽有限和数据量爆增所带来的问题,极大的提高了应用的可操作性,丰富了用户的使用体验。
      关键词:Android;异步机制;移动投票
      中图分类号:TP391 文献标识码:A 文章编号:1674-7712 (2012) 06-0093-01
      
      在省级项目《吉林地区大学生网络应用状况的研究与对策》的调研过程中,发现在大学生中,智能手机的应用已经相当普遍。智能手机以其功能强大丰富和小巧易携等优点,已经超越了简单通讯工具的范畴,很多学生通过智能手机进行沟通交流、学习和娱乐,智能手机已经成为广大学生的不可或缺的贴身伴侣。在对学生的网络应用状况进行调查的时候,项目组认识到通过手机进行调查,将能够更加方便的让学生进行投票,也能够更加容易的获得调查结果,因此项目组决定尝试开发基于Android智能手机的移动投票系统,作为最新的数据统计渠道。
      Android系统的市场占有率达70%以上,在大学生中更是首选,基于Android系统的移动投票系统,基本可以覆盖大部分的学生。为了避免因为移动网络带宽有限,而导致大量学生同时投票时,出现网络访问不畅、无法投票和无法实时查看投票结果的情况,应在投票系统中采用异步处理机制,以保证投票的实时性和准确性。在Android中提供了专门的AsynTask类进行异步处理,Asyntask机制简单易用,它将所有的线程通信都封装成回调函数,调用逻辑清晰,尤其是在异步处理结束之后,有回调函数进行收尾处理,方便进行结果的统计和输出。本文将通过实例对Android系统的AsynTask类的一部处理机制进行深入分析,以便更好的应用于移动投票系统。
      一、AsynTask类的结构
      AsynTask类直接继承自java.lang.object类,主要用到的几个内部回调函数有:doInBackGround()、onPreExecute()、onPostExecute()和onProgressUpdate(),正是这几个回调函数构成了AsynTask类的使用逻辑结构。
      二、回调逻辑关系
      1.主线程调用AsynTask子类实例的execute()方法后,首先会调用onPreExecute()方法。
      2.之后启动新线程,调用doInBackground()方法,进行异步数据处理。
      3.处理完毕之后异步线程结束,在主线程中调用onPostExecute()方法。
      三、各个函数间数据的传递
      其数据传递关系如下:
      由execute()方法向doInBackground()传递,doInBackground()方法的返回值会传递给onPostExecute()方法。publishProgress()方法向progressUpdate()方法传递。
      传递的数据的类型应该为数组,数组都是可变长的,应根据具体情况使用。
      四、AsynTask机制的java实现代码
      public class AnsyTestActivity extends Activity {
      TextView text =null;
      Button button=null;
      String str=null;
      AnsyTry anys=null;
      double result=0;
      @Override
      public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);
      text=(TextView) findViewById(R.id.text);
      button=(Button) findViewById(R.id.button);
      str="wei";
      button.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
      anys=new AnsyTry(text);
      anys.execute(str); } }); }
      class AnsyTry extends AsyncTask{
      TextView te=null;
      public AnsyTry(TextView te) {
      super();
      this.te = te; }
      @Override
      protected Double doInBackground(String... params) {
      double dou=0;
      if(params[0].equals("wei")){
      System.out.println(Thread.currentThread().getName()+"recive wei");
      dou=100; }
      publishProgress(te);
      return dou; } }}
      通过AsynTask异步机制的应用,移动投票系统在应用中表现良好。在接受学生集中投票和实时统计分析的数据高峰期,AsynTask异步机制很好的将投票和查看统计结果的功能,分配给不同的线程,从而避免了网络堵塞情况的发生,保证了投票数据的及时性和准确性。
      参考文献
      [1]杨丰盛.Android应用开发揭秘[M].北京:机械工业出版社
      [2]何孟翰.Google Android SDK开发实战演练[M].北京:人民邮电出版社

    推荐访问:机制 系统 Android

    • 文档大全
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章