저는 크리스마스 카운트 다운 앱을 제작하고 있으며 앱 작동의 기초를 가지고 있습니다. 코드에서 지정된 날짜까지 카운트 다운됩니다. 타이머가 끝날 때마다 다음 해에 날짜를 설정하고 다시 시작해야합니다. 사용자가 아무것도하지 않아도됩니다.연속 CountDownTimer 루프
onFinish()
메서드에서 루프와 같은 몇 가지를 시도하고 cdt.start();
을 추가했지만 어느 것도 작동하지 않는 것 같습니다.
누군가가 나를 올바른 방향으로 인도 할 수 있다면 많은 도움이 될 것입니다.
감사
MainActivity.java
import android.app.PendingIntent;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.os.CountDownTimer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.TextView;
import java.util.Calendar;
import java.util.List;
import java.util.concurrent.TimeUnit;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.parse.Parse;
import com.parse.ParseInstallation;
public class MainActivity extends AppCompatActivity {
private PendingIntent pendingIntent;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Creating the TextView for the countdown
final TextView tv_countdown = (TextView) findViewById(R.id.countdown_text_view);
//Set the Calendar Date and Time
Calendar start_calendar = Calendar.getInstance();
final Calendar end_calendar = Calendar.getInstance();
end_calendar.set(2016, 11, 25, 24, 0, 0);// 10 = November, month start at 0 = January
long start_millis = start_calendar.getTimeInMillis(); //get the start time in milliseconds
long end_millis = end_calendar.getTimeInMillis(); //get the end time in milliseconds
long total_millis = (end_millis - start_millis); //total time in milliseconds
//Convert the time from milliseconds to the correct time specified
//1000 = 1 second interval
CountDownTimer cdt = new CountDownTimer(total_millis, 1000) {
@Override
public void onTick(long millisUntilFinished) {
long days = TimeUnit.MILLISECONDS.toDays(millisUntilFinished);
millisUntilFinished -= TimeUnit.DAYS.toMillis(days);
long hours = TimeUnit.MILLISECONDS.toHours(millisUntilFinished);
millisUntilFinished -= TimeUnit.HOURS.toMillis(hours);
long minutes = TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished);
millisUntilFinished -= TimeUnit.MINUTES.toMillis(minutes);
long seconds = TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished);
//Set the TextVew output
tv_countdown.setText(days + " Days" + "\n" + hours + " Hours" + "\n" + minutes + " Minutes" + "\n" + seconds + " Seconds"); //You can compute the millisUntilFinished on hours/minutes/seconds
}
@Override
public void onFinish() {
end_calendar.set(2017, 11, 25, 24, 0, 0);
}
};
cdt.start();
파스 키를 게시하면 안됩니다. – tynn
@ tynn을 상기시켜 주셔서 감사합니다! –
정말 사라지지 않았습니다. 여기에있는 모든 것이 개정됩니다. 새 키를 만들 수 있습니다. – tynn