私のアプリケーションでは、今から 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を使用できます。
したがって、最初にアクティビティまたはサービスを作成する必要があります (後者を想定しましょう - 例: 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 に答える