UserInfoActivity用户图像修改和退出登录
@OnClick(R.id.btn_user_logout)
public void logout(View view){//"退出登录"button的回调方法
//1.将保存在sp中的数据清除
SharedPreferences sp = this.getSharedPreferences("user_info", Context.MODE_PRIVATE);
sp.edit().clear().commit();//清除数据操作必须提交;提交以后,文件仍存在,只是文件中的数据被清除了
//2.将本地保存的图片的file删除
File filesDir;
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){//判断sd卡是否挂载
//路径1:storage/sdcard/Android/data/包名/files
filesDir = this.getExternalFilesDir(""); }else{//手机内部存储
//路径:data/data/包名/files
filesDir = this.getFilesDir(); }
File file = new File(filesDir,"icon.png");
if(file.exists()){
file.delete();//删除存储中的文件
}
//3.销毁所有的activity
this.removeAll();
//4.重新进入首页面
this.goToActivity(MainActivity.class,null);
}

用户退出:
1.销毁当前activity
@OnClick(R.id.iv_top_back)
//返回按钮的退出操作
@OnClick(R.id.iv_top_back)
public void back(View view) {
ActivityManager.getInstance().removeCurrent();
}
2.重写MeFragment的onResume()
/**
* 当当前的Fragment显示时,考虑是否需要从本地读取用户头像
*/
@Override
public void onResume() {
super.onResume();
Log.e("TAG", "onResume");
readImage();
} private boolean readImage() {
File filesDir;
//判断sd卡是否处于挂载状态
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
filesDir = this.getActivity().getExternalFilesDir(null);//sdcard/Android/data/应用包名/file/...jpg
}else{
filesDir = this.getActivity().getFilesDir();
}
File file = new File(filesDir,"icon.png");
if (file.exists()) {//如果存在
//存储--->内存
Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
ivMeIcon.setImageBitmap(bitmap);
return true;
}
return false;
}
UserInfoActivity用户图像修改和退出登录的更多相关文章
- 安装xampp之后如何建立远程登录用户并修改登录方式和密码
其实xampp作为开发环是非常好用的,但是很少人将其用作生产环境,主要还是它的安全性较低,很多默认设置都存在安全漏洞,但是实际上使用xampp在Linux下面进行配置确实是很节省时间的一件事(如果你的 ...
- mysql添加用户、修改权限,修改登录权限ip
1.添加用户 1.1 登录MYSQL: @>mysql -u root -p @>密码 1.2 创建用户: 格式:grant select on 数据库.* to 用户名@登录主机 ide ...
- 36 Flutter仿京东商城项目 用户登录 退出登录 事件广播更新状态
Login.dart import 'dart:convert'; import 'package:dio/dio.dart'; import 'package:flutter/material.da ...
- SpringBoot 指定用户退出登录
HttpSessionConfig.java package com.meeno.common.session; import com.meenoframework.common.filter.Ses ...
- 打通前后端全栈开发node+vue进阶【课程学习系统项目实战详细讲解】(3):用户添加/修改/删除 vue表格组件 vue分页组件
第三章 建议学习时间8小时 总项目预计10章 学习方式:详细阅读,并手动实现相关代码(如果没有node和vue基础,请学习前面的vue和node基础博客[共10章] 演示地址:后台:demo ...
- 【招聘App】—— React/Nodejs/MongoDB全栈项目:个人中心&退出登录
前言:最近在学习Redux+react+Router+Nodejs全栈开发高级课程,这里对实践过程作个记录,方便自己和大家翻阅.最终成果github地址:https://github.com/66We ...
- 清除@SessionAttributes 网站实现退出登录
在网站实现登录时,我认识了@SessionAttributes,对我来说是真的好用,@SessionAttributes注解可以使得模型中的数据存储一份到session域中. 这样在页面跳转时可以直接 ...
- Linux—修改ssh远程登录信息
修改ssh远程登录端口 1.修改ssh服务的配置文件:/etc/ssh/sshd_config ,将 Port 22 改为 Port 3120 保存退出. [root@localhost ~]# vi ...
- 实战!退出登录时如何借助外力使JWT令牌失效?
大家好,我是不才陈某~ 今天这篇文章介绍一下如何在修改密码.修改权限.注销等场景下使JWT失效. 文章的目录如下: 解决方案 JWT最大的一个优势在于它是无状态的,自身包含了认证鉴权所需要的所有信息, ...
随机推荐
- 9、如何在Xamarin中进行iOS真机调试和发布
本文主要引导用户如何使用真机调试和编译发布. 概述 使用前的准备: 1.一台IPhone设备 或者IPad 都行看你自己 2.一台Mac主机和搭建好对应的xamarin.ios 开发环境 3.开发者 ...
- #pragma的一些用法
1.#pragma message message 参数:Message参数能够在编译信息输出窗口输出相应的信息,这对于源代码的信息控制特别重要,其使用方法为: #pragma message(&qu ...
- C++的函数对象优于函数指针地方
转载自:http://blog.csdn.net/huang_xw/article/details/7934156 在C++编程语言中,有很多功能都与C语言相通,比如指针的应用等等.在这里我们介绍的则 ...
- 从cpu负载到jstack分析线程状态
示例代码: public class CPULockTest { private static Object lock1 = new Object(); private static Object l ...
- JavaScript窗口打开与关闭及如何使用opener使子窗口对父窗口进行操作
一.打开与关闭窗口 1.打开窗口:可以使用window对象中的Open()方法. newWindow = window.open(url,windowname,location); 参数说明: url ...
- clientX/Y pageX/Y offsetX/Y layerX/Y screenX/Y clientHeight innerWidth...
关于js鼠标事件综合各大浏览器能获取到坐标的属性总共以下五种 event.clientX/Y event.pageX/Y event.offsetX/Y event.layerX/Y event.sc ...
- Socket编程 - 网络基础知识
API编程部分:http://www.cnblogs.com/Jimmy1988/p/7895213.html 1. 协议简介 此处,我们主要介绍Linux编程常用的三种协议(TCP/UDP/IP), ...
- msdn 中MethodBase.Invoke 方法 介绍中的坑
模块开发总结: c#动态调用webservices 来自网络及使用心得. msdn: MethodBase.Invoke 方法 (Object, Object[]) 使用指定的参数调用当前实例所表示的 ...
- MySQL死锁检测和回滚
最近碰到“TOO DEEP OR LONG SEARCH IN THE LOCK TABLE WAITS-FOR GRAPH, WE WILL ROLL BACK FOLLOWING TRANSACT ...
- 脚手架(create-react-app)没有eject情况下,使用react-scripts的时候,动态设置环境变量
在实际开发中,例如:有时候打包发布时,需要手动更新版本,比如修改package.json中的version,但是如果有时候忘了修改,那么又得build一次: 如果能动态设置多好,webpack下可以在 ...