您的位置:首页 > 移动开发 > Android开发

android用SP,判断是否过了一天

2015-08-10 17:42 597 查看
思路:打开的时候缓存一个时间,如果当前的时间比保存的时间大,就是第二天。

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测试的代码还在里面,请先自己测试下再用啊!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: