手机安全卫士------自动更新的设置

由于手机安全卫士每次打开都要进行检查软件版本的工作,久而久之会浪费用户的流量。因此,我们要在设置页面中,由用户自己确认是否需要开启检查更新的操作。

效果图:

技术点:

1.自定义组合控件

2.SharedPreferences的读写操作

自定义组合控件

和之前自定义风格的原因一样,都是为了减少工作量。由于该组合控件会有很多地方要用到,因此,我们把它抽取出来,封装在一个类中,需要使用的时候直接调用即可。一劳永逸!

思路:

  • 创建一个布局文件,包括两个TextView,一个CheckBox如效果图的形式进行布局。
  • 创建一个类,继承自RelativeLayout(如果布局是采用线性布局,则继承自LinearLayout)
  • 自定义组合控件的属性

1.布局文件:

setting_item_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="10dp"
        android:text="是否自动更新"
        android:textSize="30dp"
        android:textColor="#000"
        android:id="@+id/tv_setting_item_title"
        />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="10dp"
        android:text="已经开启自动更新"
        android:textSize="24dp"
        android:id="@+id/tv_setting_item_content"
        android:layout_below="@id/tv_setting_item_title"
        />
    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true"
        android:layout_centerVertical="true"
        android:layout_alignParentRight="true"
        android:layout_marginRight="20dp"
        android:id="@+id/cb_setting_item"
        />
    <View
        android:layout_width="match_parent"
        android:layout_height="0.3dp"
        android:layout_marginTop="10dp"
        android:background="#33000000"
        android:layout_marginBottom="10dp"
        android:layout_below="@id/tv_setting_item_content"
        />
</RelativeLayout>

2.自定义控件属性:

(1)创建一个自定义的命名空间:

xmlns:mobilesafe=”http://schemas.android.com/apk/res/包名”

(2)在values/styles 文件中加入如下代码:

 <declare-styleable name="SettingItemView">
        <attr name="content_on" format="string" />
        <attr name="content_off" format="string" />
        <attr name="title" format="string" />
    </declare-styleable>

(3)在代码中,做如下操作:

  • 加载布局

    View.inflate(Context ResourceID ViewGroup)

  • 初始化控件(findViewById)
  • 获取布局文件上的属性值
title = attrs.getAttributeValue(NAMESPACE,"title");
content_on = attrs.getAttributeValue(NAMESPACE,"content_on");
content_off = attrs.getAttributeValue(NAMESPACE,"content_off");

`
     - 根据自己的实际开发需求,设置一些属性:
 public void setChecked(boolean isChecked)
    {
        if(isChecked)
        {
            cb.setChecked(true);
            setContent(content_on);
        }
        else
        {
            cb.setChecked(false);
            setContent(content_off);
        }
    }

    public boolean isChecked()
    {
        return cb.isChecked();
    }

    private void setContent(String content)
    {
        tvContent.setText(content);
    }
在SettingActivity的布局文件中,添加如下控件:
<com.vincentliong.mobilesafe0722.ui.SettingItemView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    mobilesafe:title="是否开启自动更新"
    mobilesafe:content_on="自动更新已开启"
    mobilesafe:content_off="自动更新已关闭"
    android:id="@+id/settingitem_setting_update"
    />

然后,在SettingActivity中,创建自定义控件对象,并进行相应的操作

if(isChecked)
        {
            mSivUpdate.setChecked(true);
        }
        else
        {
            mSivUpdate.setChecked(false);
        }
        mSivUpdate.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v)
            {
                if(mSivUpdate.isChecked())
                {
                    mSivUpdate.setChecked(false);
                    editor.putBoolean("autoUpdate",false);
                }
                else
                {
                    mSivUpdate.setChecked(true);
                    editor.putBoolean("autoUpdate",true);
                }
                editor.commit();
            }
        });

最后,在SplashActivity中添加判断操作,当SharedPreferences中的antoUpdate值为true时再执行自动更新操作,否则,直接进入主页面。

搞定! 

版权声明:刚出锅的原创内容,希望对你有帮助~

时间: 2024-07-30 10:10:19

手机安全卫士------自动更新的设置的相关文章

20140527-防止eclipse自动更新的设置

20140527-防止eclipse自动更新的设置 我在这里将下面的勾全都去掉了,以后我们需要什么更新,就再选中. 20140527-防止eclipse自动更新的设置,布布扣,bubuko.com

点点守护教您如何关闭安卓手机应用软件自动更新

本文转自点点守护网站  http://www.ddshapk.com/news/item/69 这里先解释下手机应用程序为什么更新? 每个应用软件会随着用户的使用而暴露出一些问题,那么软件自然会进行修复升级处理.同样的互联网公司会随着时间而洞察出新的功能点,这时候也会对产品进行升级处理. 但是你是否见过有些应用产品在极短的时间内进行更新过N个版本的事情,反正小编见到过.软件的更新会对手机的硬件和内存的要求会更高.那么如何关闭软件自动更新呢? 下面点点守护小编OPPO R11为例讲解: 1.打开手

Wordpress后台自动更新相关设置与解答

由于Wordpress后台有很多内容是自动的,除了上文中提到的"版本更新通知"."插件更新通知"和"主题更新通知"以外,还有核心文件更新通知和翻译文件更新(自动),其实在上文的版本更新中心里面有提及相关的关闭通知方式.关闭了通知以后,wordpress博客系统有默认开启更新某些功能和默认关闭某些功能,那么无忧小编今天给大家介绍下如何设置后台自动更新. 遇到新建的Wordpress站点时,有些自动更新是默认关闭的,比如Wordpress程序的版本.

Sublime 取消每次自动更新弹窗设置

首选项 --> 设置-用户(英文版  :  "Preferences  - -> "Settings - user"") update_check 标记为false { "font_size": 13, "update_check":false, } 这样就不会在每次打开的时候弹出 是否更新的弹窗了!

MySQL数据库时间设置自动添加时间和自动更新时间

说明: MySQL字段中设置时间字段自动添加创建时间和自动更新时间设置,设置字段类型为:timestamp 默认值设置为current_timestamp(),更新时间字段字段类型为:timestamp 默认值设置为 current_timestamp() ON UPDATE current_timestamp() SQL语法和实例 create table tb_name( join_time timestamp NULL DEFAULT current_timestamp(), update

转载:Android应用的自动更新模块

软件的自动更新一般都与Splash界面绑定在一起, 由于需要维护的软件界面很复杂, 一个Activity中嵌入ViewPager, 并且逻辑比较复杂, 索性重新写一个Activity, 现在的软件都很流行使用Splash界面, 正好与自动更新配套在一起; 在这个自动更新Splash中, 使用到了 动画设置 ,SharedPerference ,pull解析 ,dialog对话框 ,http网络编程 ,handler 等. 注意一个错误 : 已安装具有该名称和不同签名的数据包 , 早上测试人员报告

[转]Android应用的自动更新

软件的自动更新一般都与Splash界面绑定在一起, 由于需要维护的软件界面很复杂, 一个Activity中嵌入ViewPager, 并且逻辑比较复杂, 索性重新写一个Activity, 现在的软件都很流行使用Splash界面, 正好与自动更新配套在一起; 在这个自动更新Splash中, 使用到了 动画设置 ,SharedPerference ,pull解析 ,dialog对话框 ,http网络编程 ,handler 等. 注意一个错误 : 已安装具有该名称和不同签名的数据包 , 早上测试人员报告

Win10如何关闭自动更新服务

原文:Win10如何关闭自动更新服务 第一步: 小娜搜索"gpedit.msc",进入本地计算机策略设置. 第二步: 找到策略位置:本地计算机策略-计算机配置-管理模板-Windows 组件-Windows 更新-配置自动更新 第三步: 双击打开"配置自动更新",设置为"已禁用"状态,确定退出即可. 原文地址:https://www.cnblogs.com/lonelyxmas/p/8566094.html

手机安全卫士03

手机安全卫士03 今天做的东西有点乱,之后再来整理 一.Splash界面 软件下载 Xutils 框架 (四大模块) – BitmapUtils – HttpUtils – DBUtils – ViewUtils 进度条展示 调用系统的安装器安装软件 1.升级apk : 检测包名一致 , 版本号大于当前的版本 , 签名要一致 二.Home 主页 搭建Home界面 GridView的使用 - 文本框字幕滚动 LogUtil 日志工具类 ## 三.自定义控件 好处: 自定义功能 TextView –