• AsyncTask onPreExecute方法用于在执行后台任务前做一些UI操作


    1.实例化 

    TableListsTask task = new TableListsTask(ServerIP,"ALL", MenuActivity.this);
      //第三参数建立上下文关系              

    2.TableListsTask.java

    package com.realhope.rmeal.ui;
    
    import static com.realhope.rmeal.service.ConstantUtil.SERVER_ADDRESS;
    
    import static com.realhope.rmeal.service.ConstantUtil.SERVER_PORT;
    
    import android.content.Context; import android.os.AsyncTask;
    
    import android.util.Log;
    
    import com.realhope.rmeal.bean.TableLists;
    
    import com.realhope.rmeal.util.MyUtil;
    
     
    
     /**异步任务  方法:menuactivity 获取台列表   * 2014-7-31   * @author Wucy   *   */
    
    public class TableListsTask extends AsyncTask<String, Integer, String> {               
    
         //onPreExecute方法用于在执行后台任务前做一些UI操作        
    
       private static final String TAG = "ASYNC_TableListsTASK";  
    
    private MyConnector mc = null;
    
      private final Context mContext;
    
      String mtable_no,mServerIP;  
    
      public TableListsTask(String ServerIP,String table_no,  Context context){   
    
      super();
    
        mContext = context;  
    
       mtable_no =table_no;    
    
    mServerIP=ServerIP;   }      
    
        @Override   
    
          protected void onPreExecute() {    
    
             Log.i(TAG, "onPreExecute() called");          // MyUtil.showToast(OrderActivity.this, "数据上传...");         // textView.setText("loading...");             //button_toOrder.setText("正在查询....");      }                                                                                                                                                                  
    
    //doInBackground方法内部执行后台任务,不可在此方法内修改UI             
    
       @Override  
    
       protected String doInBackground(String... params) {    
    
       Log.i(TAG, "doInBackground(Params... params) called");     
    
         try{
    
                    if(mc == null){  
    
            mc = new MyConnector(mServerIP, SERVER_PORT);      
    
           }        
    
         String msg = "<#GET_TABLELIST#>"+ mtable_no;   
    
         mc.dout.writeUTF(msg); //发出获取台表请求   
    
         mc.dout.flush();     
    
         int size = mc.din.readInt();   //获取个数        
    
          mc.dout.writeUTF("<#READY_TO_READ_COMMENT#>");      
    
         mc.dout.flush();  
    
         for(int i=0;i<size;i++){   
    
         msg = mc.din.readUTF();  //读取每条信息        
    
        String [] sa = msg.split("\\|"); //切割字符串   
    
        TableLists tablelists = new TableLists(Integer.valueOf(sa[0]),Integer.valueOf(sa[1]),sa[2],Integer.valueOf(sa[3]),Integer.valueOf(sa[4]),Integer.valueOf(sa[5]));
    
              ((MenuActivity)mContext).lstDate_TableLists.add(tablelists);        
    
           }    
    
     mc=null;
    
        return  String.valueOf(1);     
    
              } catch (Exception e) { 
    
                   Log.e(TAG, e.getMessage());                        }      
    
         return null;                                                         
    
        }                                                                                                                                                         //onProgressUpdate方法用于更新进度信息                                       @Override                                                                  
    
      protected void onProgressUpdate(Integer... progresses) {            
    
              Log.i(TAG, "onProgressUpdate(Progress... progresses) called");        
    
      }                                                                                                                                                         //onPostExecute方法用于在执行完后台任务后更新UI,根据后台下单结果重新绑定前台订单                     @Override                                                                   
    
    protected void onPostExecute(String result) {       
    
             Log.i(TAG, "onPostExecute(Result result) called");     
    
             MyUtil.showToast(mContext, "取后台开台信息数据");   
    
           ((MenuActivity)mContext).updateTableLists();                                         }                                                                                                                                                      //onCancelled方法用于在取消执行中的任务时更改UI       
    
     @Override  
    
    protected void onCancelled() {        
    
                  Log.i(TAG, "onCancelled() called");     
    
            }
    
       }
    
  • 相关阅读:
    ASP.NET Core开发者路线指南(转)
    一文读懂QPS、TPS、PV、UV、GMV、IP、RPS(转)
    后端开发术语大全转
    css 动态设置某一元素随浏览器大小而调整
    .NET FTP上传文件
    bootstrapselectpicker 插件事件
    Node.js安装及环境配置之Windows篇
    EasyUI表单验证插件扩展
    程序员需要知道的缩写和专业名词转
    JavaScript指定日期格式化
  • 原文地址:https://www.cnblogs.com/realhope/p/4263919.html
Copyright © 2020-2023  润新知