• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > android TCP自动重连

android TCP自动重连

作者:Miss_min 字体:[增加 减小] 来源:互联网 时间:2017-11-18

Miss_min通过本文主要向大家介绍了tcp,线程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
    public Thread _thread;
    public boolean ThreadRunning = true;   //活动销毁置为false
    private boolean isLogined = false;

    //启动线程
    _thread=new Thread(TpcConnectCheckingRunable);
    _thread.start();

    //线程
    int Tickcount=60;
    Runnable TpcConnectCheckingRunable = new Runnable() {
        public void run() {
            while (ThreadRunning) {

                try {
                    if (TCPHandle._asysocket == null) {
                        System.out.println("TCPHandle Connect");
                        if (isOpenNetwork()) {
                            TCPHandle.Connect();
                        }
                        else{
                            System.out.println("网络断开");
                        }
                    }
                    if (TCPHandle._asysocket != null && isLogined == true) {
                        if (TCPHandle.Uid.isEmpty() || TCPHandle.TOken.isEmpty()) {
                            //如果TCP没断,且没有签退则自动登录
                            RxBus.get().post(BusAction.OnNet_Login, "");
                        }
                        else{
                            if (Tickcount<1)
                            {
                                try{
                                    TCPHandle.writedData(Protrol.getInstance().TicketData());
                                    Tickcount=60;
                                }
                                catch (Exception ex)
                                {
                                    System.out.println(ex);
                                }
                            }
                            Tickcount--;

                        }
                    }
                    Thread.sleep(2000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    };

判断某一个类是否存在任务栈里面

/**
     * 判断某一个类是否存在任务栈里面
     * @return
     */
    public static boolean isExsitMianActivity(Context context,String classname){
        Intent intent = new Intent();
        intent.setClassName(context.getPackageName(), classname);

//        方法一:
        if (context.getPackageManager().resolveActivity(intent, 0) != null) {
            System.out.println("我是第一个判断,执行啦");
            return true;
            // 说明系统中存在这个activity
        }

//        方法二:
        if(intent.resolveActivity(context.getPackageManager()) != null) {
            System.out.println("我是第二个判断,执行啦");
            return true;
            // 说明系统中存在这个activity
        }
//        方法三:
        List<ResolveInfo> list = context.getPackageManager().queryIntentActivities(intent, 0);
        if (list.size() > 0) {
            System.out.println("我是第三个判断,执行啦");
            return true;
            // 说明系统中存在这个activity
        }
        return false;
    }

判断某个界面是否在前台:

/**
     * 判断某个界面是否在前台
     * @param context   Context
     * @param className 界面的类名
     * @return 是否在前台显示
     */
    public static boolean isForeground(Context context, String className) {
        if (context == null || TextUtils.isEmpty(className))
            return false;
        ActivityManager am = (ActivityManager) context.getSystemService(ACTIVITY_SERVICE);
        List<ActivityManager.RunningTaskInfo> list = am.getRunningTasks(1);
//        boolean flag=false;
        for (ActivityManager.RunningTaskInfo taskInfo : list) {
            if (taskInfo.topActivity.getShortClassName().contains(className)) { // 说明它已经启动了
//                flag = true;
                return true;
            }
        }
        return false;
    }
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • android TCP自动重连
  • TCP接收窗口--确定Window Scaling
  • nginx 1.12 stream 日志设置
  • linux命令之tcpdump
  • TCP的三次握手,TCP三次握手
  • HTTP 首部字段详细介绍,首部字段详细介绍
  • tcpdump的移植和使用方法
  • 关于TCP MSS的内核设置
  • 使用nginx作为tcp代理的安装配置例子
  • iOS,Android网络抓包教程之tcpdump

相关文章

  • 2017-05-26Android Fragment生命周期,androidfragment
  • 2017-05-26zabbix 应用系列之nginx tcp stream监控
  • 2017-05-225.1 Fragment基本概述
  • 2017-05-26Android开发10:传感器器及地图相关应用,android传感器
  • 2017-05-26从视频中每X秒创建一个缩略图
  • 2017-05-26硅谷商城5--购物车商品选中和商品总价计算,5--购物车
  • 2017-05-26Android横竖屏切换小结,Android屏切换小结
  • 2017-05-26Android java层音频相关的分析与理解(三)调用相关
  • 2017-05-26基于Pacemaker的PostgreSQL一主多从读负载均衡集群搭建
  • 2017-05-26RelativeLayout的位置属性总结,relativelayout总结

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Android Studio混淆打包错误
    • Android 手机卫士--导航界面3、4和功能列表界面跳转逻辑处理,android4和
    • Android之上下文context,androidcontext
    • Android之RecyclerView的原生Bug-Inconsistency detected. Invalid view holder adapter positionViewHolder{a1bbfa3 position=2 id=-1, oldPos=-1, pLpos:-1 no parent},recyclerviewholder
    • Android新手入门2016(11)--非阻塞对话框AlertDialog
    • Android Facebook和Twitter分享
    • [android] 手机卫士自定义控件的属性,android卫士
    • 贡献个Android 截屏并自动传到电脑上的shell脚本
    • MSM8909+Android5.1.1键盘驱动浅析
    • 安卓四大组件之广播,安卓四大组件

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有