在我的应用程序中,我想设置一个从现在到 5 月 17 日的倒数计时器。当计时器变为 0 时,将应用一个条件。一个人可以使用日历或日期吗
问问题
123 次
2 回答
0
您可以同时使用日历和日期:
Date d = new Date(2012, 02, 26); //Assign your desired date
Timer mytimer = new Timer();
mytimer.schedule(new TimerTask() {
public void run() {
//method to execute
mymethod();
}
}, d);
public void mymethod() {
this.runOnUiThread(Timer_Tick);
}
private Runnable Timer_Tick = new Runnable() {
public void run() {
if(Your condition) {
//Execute your code
}
}
};
于 2013-02-26T10:24:50.553 回答
0
我不确定我是否正确理解了您的问题。如果你想在 5 月 17 日调用一些代码,你可以使用AlarmManager。
因此,首先您必须创建 Activity 或 Service(假设后者 - 例如 MyService),然后使用如下代码:
Intent intent = new Intent(this, MyService.class);
PendingIntent pi = PendingIntent.getService(
getApplicationContext(),
1,
intent,
PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager am = (AlarmManager) getSystemService(Activity.ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, dateMay17th, pi);
此外,您应该避免 user1566160 发布的解决方案,因为它假定您的应用程序将从现在到 5 月 17 日不间断地运行,并且永远不应该假设。
编辑:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Calendar may17th = Calendar.getInstance();
may17th.set(Calendar.MONTH, 4);
may17th.set(Calendar.DAY_OF_MONTH, 17);
may17th.set(Calendar.HOUR_OF_DAY, 0);
may17th.set(Calendar.MINUTE, 17);
if ( Calendar.getInstance().after(may17th) ) {
setContentView(R.layout.new_layout);
} else {
setContentView(R.layout.old_layout);
}
}
于 2013-02-26T10:30:50.693 回答