精华内容
下载资源
问答
  • android 自定义网络变化时全局提醒

    千次阅读 2018-07-31 20:23:34
    前言:今天在鸿洋大神的公众号中看到一篇文章,叫10分钟让你实现在APP中对网络状态变化进行全局提醒。这在APP开发中是一个硬性需求,虽然我开发的app并没有要求,但我觉得这个功能有必要亲手实现一下。当然我也借鉴...

    前言:今天在鸿洋大神的公众号中看到一篇文章,叫10分钟让你实现在APP中对网络状态变化进行全局提醒。这在APP开发中是一个硬性需求,虽然我开发的app并没有要求,但我觉得这个功能有必要亲手实现一下。当然我也借鉴了作者的一些思路

    参考文章:https://mp.weixin.qq.com/s/W9U7uzXRYcqCmgbX3gbbKg

    实现思路:1、定时获取当前网络状态

                      2、利用广播发送当前网络状态,并且触发网络状态改变的监听

                      3、在baseActivity中实现网络状态改变的监听,并作出相应的响应(例如显示没有网络的布局)

    代码实现:

                 .定义接收网络变化的广播,广播我这边用的的动态广播,本来也打算用静态广播的但是看别人的评论说,android P下面有问题,所以就没用了

    public class CheckNetworkStatusChangeReceiver extends BroadcastReceiver {
        public static final String EVENT = "event";
        public static final String ACTION="action";
        private CheckNetworkStatusChangeListener mCheckNetworkStatusChangeListener;
    
        public CheckNetworkStatusChangeReceiver() {
    
        }
    
        public void setCheckNetworkStatusChangeListener(CheckNetworkStatusChangeListener mCheckNetworkStatusChangeListener) {
            this.mCheckNetworkStatusChangeListener = mCheckNetworkStatusChangeListener;
        }
    
        @Override
        public void onReceive(Context context, Intent intent) {
            CheckNetworkStatusChangeListener.Status mStatus = (CheckNetworkStatusChangeListener.Status) intent.getSerializableExtra(EVENT);
            mCheckNetworkStatusChangeListener.onEvent(mStatus);
        }
    }

                网络状态监听类

    public interface CheckNetworkStatusChangeListener {
        
        void onEvent(Status status);
    
        /**
         * 网络状态
         * TYPE_UN_NETWORK 沒有网络
         * TYPE_WIFI WiFi连接
         * TYPE_MOBILE 移动数据
         */
        enum Status {
            TYPE_UN_NETWORK,
            TYPE_WIFI,
            TYPE_MOBILE,
        }
    }

    监听事件,检查到网络状态时会调用

    void onEvent(Status status);

    检测当前网络状态

    public class NetworkUtil {
        /**
         * 获取当前网络类型 CheckNetworkStatusChangeListener.Status
         *
         * @return 返回网络类型 CheckNetworkStatusChangeListener.Status
         */
        public static CheckNetworkStatusChangeListener.Status getNetworkConnectionType(Context context) {
            //获取连接管理器
            ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            if (connectivityManager == null)
                return CheckNetworkStatusChangeListener.Status.TYPE_UN_NETWORK;
            //获取网络连接信息
            NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
            if (networkInfo != null && networkInfo.isAvailable()) {
                if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
                    return CheckNetworkStatusChangeListener.Status.TYPE_WIFI;
                }
                if (networkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
                    return CheckNetworkStatusChangeListener.Status.TYPE_MOBILE;
                }
            }
            return CheckNetworkStatusChangeListener.Status.TYPE_UN_NETWORK;
        }
    }
    

    实现每秒检测1次网络状态,因为是耗时操作所有在子线程中去获取当前网络状态

     @Override
        protected void onResume() {
            super.onResume();
            new Thread(mRunnable).start();
        }
    
        Runnable mRunnable = new Runnable() {
            @Override
            public void run() {
    
                //实现每隔一秒检测一次网络
                while (true){
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    CheckNetworkStatusChangeListener.Status status = NetworkUtil.getNetworkConnectionType(BaseActivity.this);
                    Message message = new Message();
                    message.obj = status;
                    simpleHandler.sendMessage(message);
                }
    
            }
        };

    检测网络状态后发送Message到handle,handle去发送广播,这注意handle内存泄漏

    /**
     * @ Author yemao
     * @ Email yrmao9893@163.com
     * @ Date 2018/7/31
     * @ Des自定义Handler,使用弱引用防止内存溢出
     */
    public class SimpleHandler<T extends Activity> extends Handler {
        WeakReference<T> weakReference;
    
        public SimpleHandler(T t) {
            this.weakReference = new WeakReference<>(t);
        }
    
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            if (weakReference.get() != null) {
                //发送广播
                Intent mCheckNetworkIntent = new Intent();
                mCheckNetworkIntent.setAction(CheckNetworkStatusChangeReceiver.ACTION);
                CheckNetworkStatusChangeListener.Status status= (CheckNetworkStatusChangeListener.Status) msg.obj;
                mCheckNetworkIntent.putExtra(CheckNetworkStatusChangeReceiver.EVENT,status);
                weakReference.get().sendBroadcast(mCheckNetworkIntent);
            }
        }
    
    }
    

    到这基本上就窜起来了,看下baseActivity完整代码

    /**
     * @ Author YeMao
     * @ Email yrmao9893@163.com
     * @ Date 2018/7/31
     * @ Des Activity 基类
     */
    public class BaseActivity extends AppCompatActivity implements CheckNetworkStatusChangeListener {
        private CheckNetworkStatusChangeReceiver mCheckNetworkStatusChangeReceiver;
        private String LOG = BaseActivity.class.getSimpleName();
        SimpleHandler<BaseActivity> simpleHandler;
    
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            mCheckNetworkStatusChangeReceiver = new CheckNetworkStatusChangeReceiver();
            mCheckNetworkStatusChangeReceiver.setCheckNetworkStatusChangeListener(this);
            IntentFilter mIntentFilter = new IntentFilter();
            mIntentFilter.addAction(CheckNetworkStatusChangeReceiver.ACTION);
            registerReceiver(mCheckNetworkStatusChangeReceiver, mIntentFilter);
            simpleHandler = new SimpleHandler<BaseActivity>(this);
        }
    
        @Override
        protected void onResume() {
            super.onResume();
            new Thread(mRunnable).start();
        }
    
        Runnable mRunnable = new Runnable() {
            @Override
            public void run() {
    
                //实现每隔一秒检测一次网络
                while (true){
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    CheckNetworkStatusChangeListener.Status status = NetworkUtil.getNetworkConnectionType(BaseActivity.this);
                    Message message = new Message();
                    message.obj = status;
                    simpleHandler.sendMessage(message);
                }
    
            }
        };
    
    
        @Override
        public void onEvent(Status status) {
            Log.w(LOG, "status: " + status.name());
        }
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
            unregisterReceiver(mCheckNetworkStatusChangeReceiver);
            simpleHandler.removeCallbacks(mRunnable);
        }
    
    
    }
    

    我们运行一下,看下结果

    07-31 19:12:14.069 13865-13865/com.yr.simple W/BaseActivity: status: TYPE_WIFI
    07-31 19:12:14.172 13865-13865/com.yr.simple W/BaseActivity: status: TYPE_WIFI
    07-31 19:12:14.429 13865-13865/com.yr.simple W/BaseActivity: status: TYPE_WIFI
    07-31 19:12:14.975 13865-13865/com.yr.simple W/BaseActivity: status: TYPE_WIFI
    07-31 19:12:15.071 13865-13865/com.yr.simple W/BaseActivity: status: TYPE_UN_NETWORK
    07-31 19:12:15.193 13865-13865/com.yr.simple W/BaseActivity: status: TYPE_UN_NETWORK
    07-31 19:12:15.446 13865-13865/com.yr.simple W/BaseActivity: status: TYPE_UN_NETWORK
    07-31 19:12:15.959 13865-13865/com.yr.simple W/BaseActivity: status: TYPE_UN_NETWORK

    当网络变化时,调用onEvent()的打印信息

    那么下一步就是在onEvent()判断网络状态,没有网络时的页面提示,当然你也可以做其他操作我这只提供思路

    1.自定义layout

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:background="@color/gray"
        android:layout_height="50dp">
        <TextView
            android:id="@+id/tv_network_status"
            android:layout_centerInParent="true"
            android:text="@string/not_network"
            android:textColor="@color/red"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    
    
    </RelativeLayout>

    2.BaseActivity关键代码

      @Override
        public void setContentView(int layoutResID) {
            LinearLayout mRootLayout = findViewById(R.id.root_linear_layout);
            //将网络状态view添加到根视图
            mNetworkStatusLayout = new NetworkStatusLayout(this);
            //默认隐藏状态
            mNetworkStatusLayout.setVisibility(View.GONE);
            mRootLayout.addView(mNetworkStatusLayout, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
            //将子类的layout,添加到根目录
            View mContentView = LayoutInflater.from(this).inflate(layoutResID, null);
            mRootLayout.addView(mContentView, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
        }

    动态显示隐藏NetworkStatusLayout

     @Override
        public void onEvent(Status status) {
            Log.w(LOG, "status: " + status.name());
            if (status == Status.TYPE_UN_NETWORK) {
                if (mNetworkStatusLayout.getVisibility() == View.GONE)
                    mNetworkStatusLayout.setVisibility(View.VISIBLE);
            } else {
                if (mNetworkStatusLayout.getVisibility() == View.VISIBLE)
                    mNetworkStatusLayout.setVisibility(View.GONE);
            }
        }

    运行一下看下效果

    然后进入优化工作

    可能有些页面不需要显示,添加变量checkNetworkStatusChangeListenerEnable判断是否要显示
     

    private boolean checkNetworkStatusChangeListenerEnable=true;
    public void setCheckNetworkStatusChangeListenerEnable(boolean checkNetworkStatusChangeListener) {
            this.checkNetworkStatusChangeListenerEnable = checkNetworkStatusChangeListener;
    }
    
        @Override
        public void onEvent(Status status) {
            Log.w(LOG, "status: " + status.name());
            if (checkNetworkStatusChangeListenerEnable)
                return;
            if (status == Status.TYPE_UN_NETWORK) {
                if (mNetworkStatusLayout.getVisibility() == View.GONE)
                    mNetworkStatusLayout.setVisibility(View.VISIBLE);
            } else {
                if (mNetworkStatusLayout.getVisibility() == View.VISIBLE)
                    mNetworkStatusLayout.setVisibility(View.GONE);
            }
        }

    到这基本上大功告成了,BaseActivity完整代码
     

    public class BaseActivity extends AppCompatActivity implements CheckNetworkStatusChangeListener {
        private CheckNetworkStatusChangeReceiver mCheckNetworkStatusChangeReceiver;
        private String LOG = BaseActivity.class.getSimpleName();
        private SimpleHandler<BaseActivity> simpleHandler;
        private NetworkStatusLayout mNetworkStatusLayout;
        private boolean checkNetworkStatusChangeListenerEnable=true;
    
    
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            super.setContentView(R.layout.activity_base);
            init();
        }
    
        @Override
        public void setContentView(int layoutResID) {
            LinearLayout mRootLayout = findViewById(R.id.root_linear_layout);
            //将网络状态view添加到根视图
            mNetworkStatusLayout = new NetworkStatusLayout(this);
            //默认隐藏状态
            mNetworkStatusLayout.setVisibility(View.GONE);
            mRootLayout.addView(mNetworkStatusLayout, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
            //将子类的layout,添加到根目录
            View mContentView = LayoutInflater.from(this).inflate(layoutResID, null);
            mRootLayout.addView(mContentView, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
        }
    
        private void init() {
            mCheckNetworkStatusChangeReceiver = new CheckNetworkStatusChangeReceiver();
            mCheckNetworkStatusChangeReceiver.setCheckNetworkStatusChangeListener(this);
            IntentFilter mIntentFilter = new IntentFilter();
            mIntentFilter.addAction(CheckNetworkStatusChangeReceiver.ACTION);
            registerReceiver(mCheckNetworkStatusChangeReceiver, mIntentFilter);
            simpleHandler = new SimpleHandler<BaseActivity>(this);
        }
    
        public void setCheckNetworkStatusChangeListenerEnable(boolean checkNetworkStatusChangeListener) {
            this.checkNetworkStatusChangeListenerEnable = checkNetworkStatusChangeListener;
        }
    
        @Override
        protected void onResume() {
            super.onResume();
            new Thread(mRunnable).start();
        }
    
        Runnable mRunnable = new Runnable() {
            @Override
            public void run() {
    
                //实现每隔一秒检测一次网络
                while (true) {
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    CheckNetworkStatusChangeListener.Status status = NetworkUtil.getNetworkConnectionType(BaseActivity.this);
                    Message message = new Message();
                    message.obj = status;
                    simpleHandler.sendMessage(message);
                }
    
            }
        };
    
    
        @Override
        public void onEvent(Status status) {
            Log.w(LOG, "status: " + status.name());
            if (checkNetworkStatusChangeListenerEnable)
                return;
            if (status == Status.TYPE_UN_NETWORK) {
                if (mNetworkStatusLayout.getVisibility() == View.GONE)
                    mNetworkStatusLayout.setVisibility(View.VISIBLE);
            } else {
                if (mNetworkStatusLayout.getVisibility() == View.VISIBLE)
                    mNetworkStatusLayout.setVisibility(View.GONE);
            }
        }
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
            unregisterReceiver(mCheckNetworkStatusChangeReceiver);
            simpleHandler.removeCallbacks(mRunnable);
        }
    
    
    }
    

    如何使用,activity继承自BaseActivity
     

    public class MainActivity extends BaseActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            setTitle("我是首页");
        }
    }
    

    好了,谢谢大家阅读,如有问题请戳我哦!
    demo 地址:https://gitee.com/yrmao/CheckNetworkStatusChangeDemo

    展开全文
  • 在iPhone的状态栏顶部,会有很多的信息,如运营商,信号强弱,网络状况,时间,电量等等。我们使用很多的App,如微信,QQ等等,都会发现导航栏的背景或者说图片都是重新设置过的,这样就能增加用户体验,也能更加...

           在iPhone的状态栏顶部,会有很多的信息,如运营商,信号强弱,网络状况,时间,电量等等。我们使用很多的App,如微信,QQ等等,都会发现导航栏的背景或者说图片都是重新设置过的,这样就能增加用户体验,也能更加节省下方的屏幕空间。那如何来设置导航栏的图片呢?

    (1)首先建立一个iOS项目,语言选择Swift。并且在Images.xcassets中拖入一张图片,大小要自己设置好,用来作为顶部导航栏的背景。

    (2)在Main.storyboard中选中ViewController,然后选择Editor-->Embed in-->Navigation Controller.为界面增加顶部导航栏。

    (3)在代码中实现如下:

    import UIKit
    
    class ViewController: UIViewController {
    
      override func viewDidLoad() {
        super.viewDidLoad()
        
        initNavBarImg()
    
      }
      
      
    
      func initNavBarImg(){
    
        self.navigationController?.navigationBar.setBackgroundImage(UIImage(named: "naviBar"),forBarMetrics:UIBarMetrics.Default)
        
        self.navigationController?.navigationBar.topItem?.title=""    //不设置导航栏顶部的标题,就算在storyboard中设置了标题,也会消失。
      }
    
    
    }

    (4)然后运行程序,效果如下:发现顶部已经设置成想要的图案了。


    github主页:https://github.com/chenyufeng1991  。欢迎大家访问!

    展开全文
  • 网络安全 ,深度学习,嵌入式,机器强化,生物智能,生命科学。 叮叮叮:产品已上线 —>关注 官方-微信公众号——济南纪年信息科技有限公司 民生项目:商城加盟/娱乐交友/创业商圈/外包兼职开发-项目发布/ 安全项目:...

    在这里插入图片描述


    QQ 1274510382
    Wechat JNZ_aming
    商业联盟 QQ群538250800
    技术搞事 QQ群599020441
    解决方案 QQ群152889761
    加入我们 QQ群649347320
    共享学习 QQ群674240731
    纪年科技aming
    网络安全 ,深度学习,嵌入式,机器强化,生物智能,生命科学。

    叮叮叮:产品已上线 —>关注 官方-微信公众号——济南纪年信息科技有限公司
    民生项目:商城加盟/娱乐交友/创业商圈/外包兼职开发-项目发布/
    安全项目:态势感知防御系统/内网巡查系统
    云服项目:动态扩容云主机/域名/弹性存储-数据库-云盘/API-AIeverthing
    产品咨询/服务售后(同)

    纸上得来终觉浅,绝知此事要躬行 !!!
    寻找志同道合伙伴创业中。。。抱团滴滴aming联系方式!!


    #本文为广告系统自动投放广告

    # 如有侵权 删改 请速速联系我们





    在这里插入图片描述在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 最近在做自定义表单、自定义流程、自定义菜单,由于某些原因,现在这个项目正处于停滞状态。但核心功能已实现,做点总结拿出来分享。  注:该功能属于西安网开网络有限公司,我所做的只是技术分享。该功能集成于一...

           最近在做自定义表单、自定义流程、自定义菜单,由于某些原因,现在这个项目正处于停滞状态。但核心功能已实现,做点总结拿出来分享。

           注:该功能属于西安网开网络有限公司,我所做的只是技术分享。该功能集成于一款即时通迅办公软件。下载地址:www.eoopen.com。下载后在一个类似于QQ应用中心的面板中点击使用事务流即可打开此应用(打开前需要注册企业并加载协同办公业务)。

    请大家勿喷。

           自定义表单:

          在编码中首先解决的是如何将组件存储、如何取出的问题。我现采用的方式是在保存表单时将操作区域的HTML片段进行处理后进行存储,编辑时取出HTML片段后对特定的样式进行处理。

    当表单保存后对当前表单的使用,由于表单中集成了uedit,JS模拟的单选、多选及上传等功能,在表单使用前需要对取出的HTML版段进行再次编译。这就需要在编码时对代码进行封装,提供更类初化方法。我现在使用初始化方法如下:

    /*
    		【用于流程产生的内容页】
    		@init_simulate_data:初始化模拟元素【单选、多选、下拉、联系人】,并在其拥有值的情况下进行赋值
    	*/	
    	,init_simulate: function(){
    		publicFunction._radio();        //初始化模拟单选
    		publicFunction._checkbox();     //初始化模拟多选
    		setForm.for_checkboxAndRadio(); //为单选多选进行附值
    		setForm.for_select();    		//初始化模拟下拉框,并附值
    		setForm.for_lxr();				//初始化联系人控件,并为其已选中的值进行赋值操作	
    		publicFunction.UEditInit();     //初始化页面中的UEdit插件
    		} 

     自定义表单操作界面:



     

        

             自定义流程:流程中首先需要处理的问题便是链线问题。项目启动时,一直不能确定是否封装浏览器,直到最后链线方法还是使用了SVG(总想有个机会写写canvas)。现在的链线并不完美,但基本功能已实现,等项目重新启动后再进行优化。SVG链线这块,需要注意的是直接向SVG中插入元素该元素是无法实现效果的,需要使用克隆,在获得克隆对象后更改属性值来获得一个新的链线。如下:

    else{  		
    				//当前页已存在SVG元素
    				//克隆已存在的线
    				line = 	processSvg.find('polyline').eq(0).clone(false);
    				line.attr('points',points);
    				line.attr('style',line_style);
    				line.attr('class',_class);
    				line.attr('id',polylineId);		
    				processSvg.append(line);
    				//克隆已存在的矩形		
    				rect = processSvg.find('rect').eq(0).clone(false);
    				rect.attr('x',rectX);
    				rect.attr('y',rectY);
    				rect.attr('style',rect_style);
    				rect.attr('id','rect_'+polylineId);
    				rect.attr('polylineId',polylineId);		
    				processSvg.append(rect);
    				//克隆已存在文本
    				_text = processSvg.find('text').eq(0).clone(false);
    				_text.attr('x',textX);
    				_text.attr('y',textY);
    				_text.attr('style',text_style);
    				_text.attr('id','text_'+polylineId);
    				_text.attr('polylineId',polylineId);		
    				processSvg.append(_text);
    				}

       在链线上有文字提示,图上所表示的设置和黄色为初始状态。点击可进行编辑,用于设置该链线的流向(提交、退回),条件(成立、不成立);

    流程操作界面:


    其它的数据交互就只是复杂一些,难度倒没什么。

    如果感兴趣某一个点,可以留言。

    后续时间不紧了,再做详细更新。

    展开全文
  • QQ空间整站源码

    2021-03-18 06:58:24
    腾讯官方提供的默认QQ空间状态都是一样的,想必您不一定喜欢,这样的话,您就需要用自定义QQ代码的方法改变QQ空间的皮肤、导航等。这些常用的QQ代码我们都收集在QQ空间代码大全里,您可以方便地找到。 很多网友对QQ...
  • 目前支持协议有QQ空间、3GQQ、手机QQ、WebQQ CWebQQ类 CWebQQ支持所有WebQQ功能: WebQQ上线、可自定义在线状态 与好友收发消息、与群收发消息、与群成员收发消息、查找好友加好友、查找群加群、同意群或好友的请求...
  • 本资源包括开发类库、开发文档、开发例子。 一个封装了QQ空间协议、webQQ协议、手机QQ协议、3GQQ协议的SDK,...可以自定义设置Referer、UserAgent、代理、获取cookie、带上cookie获取网络图片 yiwoSDK.dll 最新版本1.6
  • 进入自定义状态自定义被挡住时可用):ctrl+j 删除自行添加的自定义模块:ctrl+鼠标双击 进入日志页面:ctrl+b 保存装扮方案:ctrl+s ------------------------------------------------- 原来QQ空间这玩意...
  • 网络守护神4.5完美版

    2008-11-11 18:20:00
     网络守护神提供了完善的日志查询系统,您可以使用局域网内任意主机,通过HTTP方式来查询控制日志,从而使得管理人员可以对网络运行状态了如指掌。  日志查询系统提供了主机日/月流量图、主机小时/日流速图;提供...
  • 梦缘网络

    2006-02-23 09:05:59
    本站地址:http://www.myuan.cn 梦缘网络站长:磊磊 QQ:77654031 本站源码是原乔客内核,经过中青的美化以及本站添加的插件,优化了代码.使浏览速度加快!(注:在许多地方的网上上的中青网的源码虽然文件完整,但是打开速度...
  • 产品多图显示,采用网络流行的显示效果,一个大图和多个小图显示,鼠标移至小图显示大图 图片出错自动辨别显示默认图片,避免网站出现×的现象 产品图片可选是否使用移动特效,后台自定义产品缩略图和推荐缩略图...
  • 全诚网络商城源码

    2021-03-30 01:51:25
    自定义每页显示商品数量,可按照不同的排序状态进行查看7、增加了站内调查8、纠正了一些不能随后台添加而更改的内容,使的站点整体实现完全在线管理*************************************************1、 系统以...
  • 网络幽狗。。。vip版

    2011-06-22 22:38:01
    9-监视所有主机的QQ聊天记录:QQ操作内容、QQ聊天状态、使用的QQ号码、时间、流量等。 10-统计所有主机的流量记录,详细记录其中具体应用的流量记录。 11-查看指定网页的请求地址和跳转地址,可与指定QQ号进行聊天。...
  • asp网络购物系统2009

    2009-01-09 10:51:00
    可选显示QQ、旺旺在线状态; 27. 增加分类导航、品牌导航功能,有利于搜索引擎优化,同时方便客户浏览 28. 商品自定义参数可选不同位置显示 29. 内部增加Function函数调用,提高程序的运行效率 30. 界面更多使用...
  • 自定义在线充值模板. ☆ 自定义后台管理权限,多用户管理. ☆ 完整的数据库备份/优化/清理功能,将您的数据库经常保持在最佳状态. ☆ 虚拟卡多种方式导入,定有一种适合您. ☆ 可编辑导入的虚拟卡. ☆...
  • 18-动态更新各个主机的状态图标及相应状态的主机数目,方便具体的查看。 19-自动加载各个记录文件,可以手工或自动删除记录文件。 20-支持系统托盘,可以随时隐藏至系统托盘。 21-支持Ping探测,可以通过软件自带的...
  • 框架简介: ... 本框架采用成熟稳定的Discuz3.4论坛系统,MVC框架环境下开发; 本框架无缝整合Discuz用户系统内置功能,采用插件形式开发的独立框架、分离代码、支持二次开发扩展;...QQ模块:QQ登录 后续功能……
  • 框架简介: ... 本框架采用成熟稳定的Discuz3.4论坛系统,MVC框架环境下开发; 本框架无缝整合Discuz用户系统内置功能,采用插件形式开发的独立框架、分离代码、支持二次开发扩展;...QQ模块:QQ登录 后续功能……
  • 9-监视所有主机的QQ聊天记录:QQ操作内容、QQ聊天状态、使用的QQ号码、时间、流量等。 10-统计所有主机的流量记录,详细记录其中具体应用的流量记录。 11-查看指定网页的请求地址和跳转地址,可与指定QQ号进行聊天...
  • 转载于:...该类库可以防止按钮重复点击,可以判断网络状态,可以判断用户登录状态,以及自定义验证条件等等。 说明:  其实现的核心原理就是通过自定义实现自身的OnClickListener类
  • 目前查询和登录操作是分开的,查询是不依赖用户是否登录,放在 A 云 T 云容易被限制 ip,建议在其它网络环境下运行 QQ 交流群 780289875,TG 群 Py12306 交流 Online IDE Thanks 感谢大佬 testerSunshine,借鉴...
  • 目前处于代码初期后期会继续更新,欢迎师傅们加QQ提意见:NTYzMTY0NjE3 (防麦片) 由于 Fofa 改版该脚本暂时是用不了,这两天会更新 FofaSpider 本脚本基于python3开发,支持批量爬取功能,将语句写在txt中会进行批量...
  • 独立的QQ帐号登录功能,可以快捷地访问QQ空间、QQ邮箱、QQ网络收藏夹等业务. 版本特性: 1.升级安全浏览模式,智能判别网址,保证上网安全 2.网络收藏夹与本地收藏夹在同级别菜单展示,可互相拖动 3.优化地址...
  • 企业即时通讯源码

    2007-09-03 13:59:27
    供了自定义在线状态的功能,以满足各种应用场合的需求. 2 即时消息 在 NetMessenger 上发消息完全可以和手头的其他工作同时进行。比 Email 要快速,无需等待;比电话交流 方式要丰富,不用消耗时间在拨电话、...
  • NetUtils 网络状态工具类 PicUtils 图片处理工具类 ServiceUtils 服务工具类 ImageHelper 图型处理类 DisplayUtils 数据转换类 SpUtils Sp简化工具类(可存储list和map) ToastUtils Toast定制工具类 ...
  • 网络中用户的行为进行审计记录,包括用户范围WEB网站,收发邮件,使用FTP传输文件,使用MSN、QQ等即时通讯软件等行为,帮助管理员发现潜在的网络威胁。同时对网络中的敏感行为进行审计。 流量统计功能 对网络流量...
  • 最近有些朋友提问,Android QQ空间 换肤实现原理是什么?于是,我决定在这里做一下回答。对这个方面感兴趣的朋友也可以来看下。 手q的换肤机制主要是通过拦截系统resource中的sPreloadedDrawables静态缓存变量,把这...
  • 支持自定义状态指示点位置 左 、中 、右 支持自定义状态指示点 支持监听页面点击事件 支持设置图片轮播间隔 支持指示器背景的修改及隐藏/显示 支持显示提示性文字功能 支持图片切换动画,目前支持10种切换动画,亦可...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 293
精华内容 117
关键字:

qq网络状态自定义