android用SP,判断是否过了一天
2015-08-10 17:42
597 查看
思路:打开的时候缓存一个时间,如果当前的时间比保存的时间大,就是第二天。
PS:用sp会有个漏洞,如果客户把缓存清理了,再打开,还是会执行第二天的事件,或者用户改了android的系统时间,也一样。
如果是要精确的做到第二天的判断,还是需要和服务器交互。
界面就不给了,PS测试的代码还在里面,请先自己测试下再用啊!
PS:用sp会有个漏洞,如果客户把缓存清理了,再打开,还是会执行第二天的事件,或者用户改了android的系统时间,也一样。
如果是要精确的做到第二天的判断,还是需要和服务器交互。
public class MyActivity extends Activity { /** * Called when the activity is first created. */ SharedPreferences sp; SharedPreferences.Editor editor; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); sp = getSharedPreferences("myapp", MODE_PRIVATE); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.main); if (isToday()) { //不是同一天的时候做一些啥的 Toast.makeText(this, "一分钟过去了", Toast.LENGTH_LONG).show(); } } /** * 判断是否是同一天 * 是同一天返回false * * @return */ private boolean isToday() { editor = sp.edit(); Time t = new Time(); // or Time t=new Time("GMT+8"); 加上Time Zone资料 t.setToNow(); // 取得系统时间。 int year = t.year; int month = t.month; int date = t.monthDay; int minute = t.minute; int oldminute = sp.getInt("minute", -1); int oldyear = sp.getInt("year", -1); int oldmonth = sp.getInt("month", -1); int olddate = sp.getInt("date", -1); saveMsg(); //the first if (oldminute == -1 || oldyear == -1 || oldmonth == -1 || olddate == -1) { return true; } logUtil("timeM", t.minute); if (oldyear < year) { logUtil("month", month); return true; } else if (oldmonth < month) { return true; } else if (olddate < date) { return true; } else if (oldminute < minute) { return true; } else { return false; } } private void saveMsg() { Time t = new Time(); // or Time t=new Time("GMT+8"); 加上Time Zone资料 t.setToNow(); // 取得系统时间。 int year = t.year; int month = t.month; int date = t.monthDay; int minute = t.minute; editor.putInt("year", year); editor.putInt("month", month); editor.putInt("date", date); editor.putInt("minute", minute); editor.commit(); } private void logUtil(String name, int msg) { Log.v(name, "" + msg); } }
界面就不给了,PS测试的代码还在里面,请先自己测试下再用啊!
相关文章推荐
- user interface, view 和activity究竟是啥?
- Activity重要知识总结
- Android处子Demo—简易的UC首页动画
- 文章标题
- 【Android进阶篇】自定义应用权限
- Arcgis Android 坐标转换
- Google 收购 Android 十周年 全面解读Android现状
- Android 第三方应用广告拦截实现
- android学习笔记(9)android程序调试学习
- Android中自定义Activity和Dialog的位置大小背景和透明度等
- 【姿势】Android 和 Mac 爆毁灭级安全漏洞
- Android屏幕适配全攻略(最权威的官方适配指导)
- Android 调试出现 could not get wglGetExtensionsStringARB
- Android--SlidingMenu 使用详解
- Android发送验证码的倒计时按钮
- Android工程结构
- Android(Java) 模拟登录知乎并抓取用户信息
- Android项目目录结构介绍
- Android 实现形态各异的双向侧滑菜单 自定义控件来袭
- android消息处理机制