异步任务判断服务器是否开启

/** 异步任务 :判断服务器开启才取后台数据
  * 2014-7-31
  * @author 吴春源
  *
  */
 public class MyTask extends AsyncTask<String, Integer, String> {               
     //onPreExecute方法用于在执行后台任务前做一些UI操作                          
     @Override                                                                   
     protected void onPreExecute() {                                             
         Log.i(TAG, "onPreExecute() called"); 
        // MyUtil.showToast(OrderActivity.this, "数据上传...");
        // textView.setText("loading..."); 
       //  button_toOrder.setText("正在查询....");
       //  pd = ProgressDialog.show(MenuActivity.this, "查台", "正在连接服务器...", true, true);
   
     }                                                                           
                                                                                 
     //doInBackground方法内部执行后台任务,不可在此方法内修改UI                   
     @Override                                                                   
     protected String doInBackground(String... params) {
      //totalText = (TextView) findViewById(R.id.total);
         Log.i(TAG, "doInBackground(Params... params) called");                  
      
         try{
    Socket socket2  =new Socket();
    //socket2.connect(new  InetSocketAddress(SERVER_ADDRESS, SERVER_PORT));
    //设置连接超时 10s
    socket2.connect(new InetSocketAddress(ServerIP, SERVER_PORT),10000);
     socket2.close();
    
    return  String.valueOf(1)+"|"+params[0];
    
          } catch (Exception e) {                                                 
             Log.e(TAG, e.getMessage());  
             return  String.valueOf(0);
          } 
                                                           
     }                                                                      
                                                                            
     //onProgressUpdate方法用于更新进度信息                                 
     @Override                                                              
     protected void onProgressUpdate(Integer... progresses) {               
         Log.i(TAG, "onProgressUpdate(Progress... progresses) called");     
   
     }                                                                      
                                                                            
     //onPostExecute方法用于在执行完后台任务后更新UI,根据后台下单结果重新绑定前台订单               
    // String result 来自doInBackground
     @Override                                                              
     protected void onPostExecute(String result) {                          
         Log.i(TAG, "onPostExecute(Result result) called");
         String [] sa =result.split("\\|");
          //pd.dismiss();
             if(sa[0].equals("1")){
              /** MyUtil.showToast(MenuActivity.this, "服务器开启"); 
              * */
               if(sa[1].equals("0")){ // 0-取台号
                 // mTTask= new  TableListsTask();                                               
                // mTTask.execute("0");
             TableListsTask task = new TableListsTask(ServerIP,"ALL", MenuActivity.this);
                  //DownLoaderTask task = new DownLoaderTask("http://192.168.9.155/johnny/test.h264", getCacheDir().getAbsolutePath()+"/", this);
                  task.execute();
                  //取订单明细
                  OrderDetailTaskM task1 = new OrderDetailTaskM(ServerIP,"0", MenuActivity.this);
                  task1.execute();
                  
               }
              
               if(sa[1].equals("2")){ // 2-取台号 -某一台
                  // mTTask= new  TableListsTask();                                               
                 // mTTask.execute("0");
              TableListsTask task = new TableListsTask(ServerIP,table_no, MenuActivity.this);
                   //DownLoaderTask task = new DownLoaderTask("http://192.168.9.155/johnny/test.h264", getCacheDir().getAbsolutePath()+"/", this);
                   task.execute();
                  //2014-11-9增加查台取订单明细 
                   OrderDetailTaskM task1 = new OrderDetailTaskM(ServerIP,"0", MenuActivity.this);
                   task1.execute();
                    }
            
              
           
                if(sa[1].equals("1")){ // 1-取新菜单
                 MenuListsTaskM task = new MenuListsTaskM(ServerIP,"0", MenuActivity.this);
                  task.execute();
                     }
         
               }
           if(result.equals("0")){
         MyUtil.showToast(MenuActivity.this, "无法连接服务器"); 
               }
          }                                                                      
                                                                         
     //onCancelled方法用于在取消执行中的任务时更改UI                        
     @Override                                                              
     protected void onCancelled() {                                         
         Log.i(TAG, "onCancelled() called");                                
      } 
 }

时间: 2024-08-01 20:34:55

异步任务判断服务器是否开启的相关文章

Android客户端判断服务器是否开启 HttpHostException解决方案

Android判断服务器是否开启,试了很多方法都不行(若server未开启会卡在HttpResponse那),有人说高版本的Android程序不允许在主线程中访问网络(主线程中可以读写网络流)有待于验证. 方法一: 在xxxActivity的onCreate()方法中添加 StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadP

c#异步Socket Tcp服务器实现

原创性申明 本文作者: 小竹zz  本文地址:http://blog.csdn.net/zhujunxxxxx 转载请注明出处. 介绍 我之前写过一篇IOCP的文章: http://blog.csdn.net/zhujunxxxxx/article/details/43573879 这个比异步socket性能好,因为它复用对象了. 在c#中微软已经提供了TcpListener和TcpClient来实现Tcp的通讯,这部分已经有人写了比较好的异步服务器代码 http://www.cnblogs.c

C#中判断服务器图片是否存在

public int num = 0; /// <summary> /// 判断服务器路径中的图片文件是否存在存在则累加统计 /// </summary> private int GetAcount(string name) { for (int i = 1; i < i + 1; i++) { string url = "http://IP/Image/" + name + "/" + name + i + ".jpg&qu

Android判断GPS是否开启和强制帮用户打开GPS

引子:在我们的应用为用户提供定位服务时,通常想为用户提供精确点的定位服务,这是需要用户配合的.我们必须先检测用户手机的GPS当前是否打开,若没打开则弹出对话框提示.用户若不配合我们也没办法,只能采用基站定位方式.如果我们的应用必须用户打开GPS才可使用,这时流氓一点的做法,就是强制帮用户打开GPS. 阐明概念: 定位服务GPS:全球卫星定位系统,使用24个人造卫星所形成的网络来三角定位接受器的位置,并提供经纬度坐标.虽然GPS提供绝佳的位置的精确度,但定位的位置需要在可看见人造卫星或轨道所经过的

判断GPS是否开启&amp;转到设置GPS界面

/** * 判断GPS是否开启,GPS或者AGPS开启一个就认为是开启的 * @param context * @return true 表示开启 */ public static final boolean isGPSOPen(final Context context) { LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); // 通过G

IIS6.0服务器完美开启Gzip压缩[转]

转自:http://seo.qiankoo.com/731 在昨天服务器还没重装之前,这个服务器已经开启了Gzip,去年配置的时候就很波折,因为配置文件在C盘,所以重装后Gzip就没了. 今天理论上第二次配置Gzip应该很轻松的,但是苦逼的人总能遇到意想不到的问题. IIS6.0开启Gzip的整个流程 第一步 首先右击“本机计算机”选择“允许直接编辑配置数据库”,这样做的目的是可以直接修改配置文件,或者在服务里停止掉“IIS Admin Service”服务(需谨慎), 第二步 右键“web服务

iOS开发 - 判断程序第一次开启 以及 应用升级后第一打开的判断

现在很多app都加了开场的引导页,在用户第一次开启应用的时候呈现,给用户一些使用上的引导和说明,当用户第二次打开时就不显示了. 要达到这种效果其实只需要持久化一个flag即可.但是问题来了,当app升级之后,我们希望能够重新开启新的引导页,来告诉用户新版本的一些内容,这样的话,持久话一个flag的方法就无法实现了. “一个不行,那么就用多个吧.” 我们给这个flag 加上程序的版本号,这样当程序升级之后,因为版本号不同,会被判断为第一次开启. 在引导页结束的地方加入一下代码: NSString

检查服务器是否开启GD库

1.把以下代码复制到记事本中并保存成A.php<?phpOb_end_flush();header ("Content-type: image/png");$im = @imagecreate (200, 100)or die ("无法创建图像");$background_color = imagecolorallocate ($im, 0,0, 0);$text_color = imagecolorallocate ($im, 230, 140, 150);

服务器如何开启php的fsockopen函数? 使用发邮箱类

服务器如何开启php的fsockopen函数?如果你要使用一些邮件的类,那么很多要求支持php的fsockopen函数.但是服务器默认不是开启的.下面是从网上找的2中开启的方法,针对不同的用户. echo phpinfo(); 查disable_functions,如果后面出现了fsock,fsockopen,则需要把这两个函数去掉,重启apache,然后继续下面: 方法一: 第一步: php.ini文件中查找 allow_url_fopen = On 使其值为On 第二步: php.ini文件