[android] 手机卫士关闭自动更新

保存数据的四种方式,网络,广播提供者,SharedPreferences,数据库

 

获取SharedPreferences对象,通过getSharedPreferences()方法,参数:名称,模式

例如configMODE_PRIVATE

调用SharedPreferences对象的edit()方法,得到Editor对象

调用Editor对象的putBoolean()方法,放入布尔数据,参数:键值对,”update” false

调用Editor对象的commit()方法,提交数据

 

查看/data/data/包名/shared_perfs/config.xml这个生成的xml文件

使用命令行adb shell  cd 到上面的目录,使用cat命令查看文件

 

调用SharedPreferences对象的getBoolean()方法,得到保存的数据,参数:键,默认值

进行判断,状态设置为ture,设置文本内容

 

设置检查下载部分

得到保存的是否自动更新的状态,判断状态

如果自动更新,调用检测自动更新的代码

如果不自动更新,延迟两秒,自动跳转到主页

调用Handler对象的postDelayed()方法,参数:Runable对象,延迟的毫秒数

使用匿名内部类继承Runable对象,重写run()方法,方法里面跳转到主页

 

升级进度的TextView部分,默认隐藏,android:visibility=”gone” gone是隐藏并空出位置

在下载过程中的回调函数里面,这一瞬间显示出来

调用TextView对象的setVisibility(View.VISIBLE)

SettingActivity:

复制代码
package com.qingguow.mobilesafe;

import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;

import com.qingguow.mobilesafe.ui.SettingItemView;

public class SettingActivity extends Activity {
    private SettingItemView siv_item;
    private SharedPreferences sp;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_setting);
        siv_item=(SettingItemView) findViewById(R.id.siv_item);
        sp=getSharedPreferences("config", MODE_PRIVATE);
        //根据保存的数据设置状态
        boolean update=sp.getBoolean("update", false);
        if(update){
            siv_item.setChecked(true);
            siv_item.setDesc("自动更新已经开启");
        }else{
            siv_item.setChecked(false);
            siv_item.setDesc("自动更新已经关闭");
        }
        
        //自动更新的点击事件
        siv_item.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View arg0) {
                Editor editor=sp.edit();
                if(siv_item.isChecked()){
                    //设置不选中
                    siv_item.setChecked(false);
                    siv_item.setDesc("自动更新已经关闭");
                    editor.putBoolean("update", false);
                }else{
                    //设置选中
                    siv_item.setChecked(true);
                    siv_item.setDesc("自动更新已经开启");
                    editor.putBoolean("update", true);
                }
                editor.commit();
            }
        });
    }
}
复制代码

 

posted @   唯一客服系统开发笔记  阅读(237)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示
1
chat with us