实战总结(一):关闭推送实现:Switch状态监听和SharedPreferences保存状态

简介: 实战总结(一):关闭推送实现:Switch状态监听和SharedPreferences保存状态

项目整改,需要有关闭推送功能


于是想到了用switch控件监听,通过其是否checked进行不同的处理。


调用方法为:setOnCheckedChanged()方法 他会自动重写onCheckedChanged方法,根据是否选中进行不同处理。


关键代码如下:


在SettingActivity里面:


//使用Databinding绑定控件;
mBinding.switchPush.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
                if(b){
                    //将数据保存至SharedPreferences
                    //如果打开推送 
                    SharedPreferences preferences=getSharedPreferences("user", Context.MODE_PRIVATE);
                    SharedPreferences.Editor editor=preferences.edit();
                    editor.putBoolean("flag",b);
                    editor.apply();
                    ToastUtils.showShort("开启推送");
                    doSomeThing(b);
                }else {
                    //将数据保存至SharedPreferences:
                    SharedPreferences preferences = getSharedPreferences("user", Context.MODE_PRIVATE);
                    SharedPreferences.Editor editor = preferences.edit();
                    editor.putBoolean("flag", b);
                    editor.apply();
                    ToastUtils.showShort("关闭推送!");
                    doSomeThing(b);
                }
            }
        });

为什么使用SharedPreferences 呢?因为如果不使用此方法保存状态,在退出界面后,重新进入此界面时,他会默认显示开启,无论你刚才进行了什么操作。所以在此需要保存其状态以保证界面正常显示。


 

private void doSomeThing(boolean Ischecked) {
         SDKUtils.initPush(Ischecked);
    }

此方法进入后调用SDK工具类里的初始化推送方法,如果为true,则会打开推送,如果为false,则会关闭推送。


关于推送如何实现,每个平台各有不同,就下去自行百度吧~


28787cccb161db5dfab191a5c0602ed.png


个人总结,如果不正或建议,欢迎交流,谢谢~


相关文章
|
5天前
|
Java API 调度
Android系统 自定义开机广播,禁止后台服务,运行手动安装应用接收开机广播
Android系统 自定义开机广播,禁止后台服务,运行手动安装应用接收开机广播
24 0
解决开启子线程,导致request上下文和session信息丢失问题
解决开启子线程,导致request上下文和session信息丢失问题
836 0
|
3月前
|
Android开发
Activity启动模式完全解读-更新中
Activity启动模式完全解读-更新中
34 0
activiti 全局流程监听ActivitiEventListener,实现监听不同类型事件,不需要在acitivit中配置任务监听,非常方便
activiti 全局流程监听ActivitiEventListener,实现监听不同类型事件,不需要在acitivit中配置任务监听,非常方便
855 0
activiti 全局流程监听ActivitiEventListener,实现监听不同类型事件,不需要在acitivit中配置任务监听,非常方便
|
存储
刷新adapte要注意的地方,和adapter使用的流程
刷新adapte要注意的地方,和adapter使用的流程
|
Java
绑定监听事件的按钮运行结果错误原因及其解决方案
既然是窗口大小和按钮大小相同,那么一定是设置宽高的代码出现了问题,由于我们要使得代码冗余度降低,所以把按钮对象建在类中,所以在本类中的 this 关键字代表的就是JFrame窗体的大小,而不是按钮的大小
99 0
绑定监听事件的按钮运行结果错误原因及其解决方案
|
缓存 NoSQL Java
TimedCache 带时间缓存工具类,附加监听回调 | Java工具类
TimedCache 带时间缓存工具类,附加监听回调 | Java工具类
TimedCache 带时间缓存工具类,附加监听回调 | Java工具类
Mutations修改状态
Mutations修改状态
96 0
|
Android开发 开发者
【Android 应用开发】Activity 返回堆栈清除操作 ( 默认状态 | 清除返回堆栈配置 | 不清除返回堆栈配置 | 清除指定界面配置 )
【Android 应用开发】Activity 返回堆栈清除操作 ( 默认状态 | 清除返回堆栈配置 | 不清除返回堆栈配置 | 清除指定界面配置 )
386 0
|
Android开发 开发者
【Android 高性能音频】AAudio 状态机 ( 创建 | 打开 Open | 开始 Started | 暂停 Paused | 刷写 Flushed | 停止 Stopped | 关闭 )
【Android 高性能音频】AAudio 状态机 ( 创建 | 打开 Open | 开始 Started | 暂停 Paused | 刷写 Flushed | 停止 Stopped | 关闭 )
352 0